diff --git a/Biobase/Infernal.hs b/Biobase/Infernal.hs
--- a/Biobase/Infernal.hs
+++ b/Biobase/Infernal.hs
@@ -11,6 +11,9 @@
   , vhEneeByteString
   , vhEneeByteStrings
   , Species(..)
+  , tFromFile
+  , Clan(..)
+  , cFromFile
   ) where
 
 import Data.ByteString as BS
@@ -23,6 +26,8 @@
 import Biobase.Infernal.VerboseHit.Export as VH
 import Biobase.Infernal.Taxonomy
 import Biobase.Infernal.Taxonomy.Import as T
+import Biobase.Infernal.Clan
+import Biobase.Infernal.Clan.Import as C
 
 thFromFile = TH.fromFile
 
@@ -33,3 +38,5 @@
 vhEneeByteStrings = VH.eneeByteStrings
 
 tFromFile = T.fromFile
+
+cFromFile = C.fromFile
diff --git a/Biobase/Infernal/Clan.hs b/Biobase/Infernal/Clan.hs
new file mode 100644
--- /dev/null
+++ b/Biobase/Infernal/Clan.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | Rfam clans are a set of biologically related Rfam families. This module
+-- provides simple abstraction methods and loaders.
+--
+-- TODO This has to go into biobase and needs to be made nice-looking.
+--
+-- TODO load and parse with enumerator
+
+module Biobase.Infernal.Clan where
+
+import qualified Data.ByteString.Char8 as BS
+
+
+
+-- | Simple RfamClan data wrapper. Could Easily be just a list of bytestrings,
+-- which it is using strings
+
+data Clan = Clan
+  { accession :: BS.ByteString
+  , identifier :: BS.ByteString
+  , members :: [BS.ByteString]
+  , strings :: [BS.ByteString]
+  } deriving (Read,Show,Eq)
+
diff --git a/Biobase/Infernal/Clan/Import.hs b/Biobase/Infernal/Clan/Import.hs
new file mode 100644
--- /dev/null
+++ b/Biobase/Infernal/Clan/Import.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- | Importing clan data is probably never time-critical as the total file size
+-- is extremely small. Should this ever change, swap to iteratee. The file is
+-- read /strictly/.
+
+module Biobase.Infernal.Clan.Import where
+
+import qualified Data.ByteString.Char8 as BS
+import Data.List
+
+import Biobase.Infernal.Clan
+
+
+
+-- | Import the complete data strictly.
+
+fromFile :: FilePath -> IO [Clan]
+fromFile fp = do
+  (map mkClan . groupBy (\x y -> "AC"/=(head . BS.words $y)) . BS.lines) `fmap` BS.readFile fp
+
+-- | Given a list of bytestrings, create one Clan.
+--
+-- TODO return Maybe, make crash-safe
+
+mkClan :: [BS.ByteString] -> Clan
+mkClan xs = Clan
+  { accession  = (!!1) . BS.words . head . filter ((=="AC") . BS.take 2) $ xs
+  , identifier = (!!1) . BS.words . head . filter ((=="ID") . BS.take 2) $ xs
+  , members    = map BS.init . map (!!1) . filter ((=="MB") . (!!0)) . map BS.words $ xs
+  , strings    = xs
+  }
diff --git a/BiobaseInfernal.cabal b/BiobaseInfernal.cabal
--- a/BiobaseInfernal.cabal
+++ b/BiobaseInfernal.cabal
@@ -1,5 +1,5 @@
 name:           BiobaseInfernal
-version:        0.5.2.0
+version:        0.5.3.0
 author:         Christian Hoener zu Siederdissen
 maintainer:     choener@tbi.univie.ac.at
 homepage:       http://www.tbi.univie.ac.at/~choener/
@@ -40,6 +40,8 @@
 
   exposed-modules:
     Biobase.Infernal
+    Biobase.Infernal.Clan
+    Biobase.Infernal.Clan.Import
     Biobase.Infernal.TabularHit
     Biobase.Infernal.TabularHit.Import
     Biobase.Infernal.Taxonomy
