diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -7,6 +7,11 @@
 
 ## [Unreleased]
 
+## 0.1.1.0
+* Back compability lost for SQ section
+* No more DuplicateRecordFields, so it can be built by 7.x
+* Includes and Contains sections of DE tested
+
 ## 0.1.0.1
 * Small fixes in description fields read
 * Documentation fixes
diff --git a/src/Bio/Uniprot/Parser.hs b/src/Bio/Uniprot/Parser.hs
--- a/src/Bio/Uniprot/Parser.hs
+++ b/src/Bio/Uniprot/Parser.hs
@@ -75,39 +75,40 @@
 -- |Parses DE lines of UniProt-KB text file.
 parseDE :: Parser DE
 parseDE = do
-    recName  <- optional $ parseNameDE RecName
-    altNames <- many' (endOfLine *> parseAltDE)
-    subNames <- many' (endOfLine *> parseNameDE SubName)
-    includes <- pure []
-    contains <- pure []
+    recName  <- optional $ parseNameDE 0 RecName
+    altNames <- many' (endOfLine *> parseAltDE 0)
+    subNames <- many' (endOfLine *> parseNameDE 0 SubName)
+    includes <- many' (endOfLine *> parseInternal "Includes")
+    contains <- many' (endOfLine *> parseInternal "Contains")
     flags    <- optional (endOfLine *> parseFlagsDE)
     pure DE{..}
   where
     -- |Parses name section like RecName, AltName or SubName.
-    parseNameDE :: NameType -> Parser Name
-    parseNameDE nameType = do
-        fullName <- parseDELine nameType "Full"
-        shortName <- many' $ endOfLine *> parseDELine None "Short"
-        ecNumber <- many' $ endOfLine *> parseDELine None "EC"
+    parseNameDE :: Int -> NameType -> Parser Name
+    parseNameDE indent nameType = do
+        fullName <- parseDELine indent nameType "Full"
+        shortName <- many' $ endOfLine *> parseDELine indent None "Short"
+        ecNumber <- many' $ endOfLine *> parseDELine indent None "EC"
         pure Name{..}
 
     -- |Parses flag line of DE section
     parseFlagsDE :: Parser Flag
-    parseFlagsDE = read . unpack <$> parseDELine Flags ""
+    parseFlagsDE = read . unpack <$> parseDELine 0 Flags ""
 
     -- |Parses AltName lines of DE section
-    parseAltDE :: Parser AltName
-    parseAltDE =
-      (Simple <$> parseNameDE AltName) <|>
-      (Allergen <$> parseDELine AltName "Allergen") <|>
-      (Biotech <$> parseDELine AltName "Biotech") <|>
-      (CDAntigen <$> parseDELine AltName "CD_antigen") <|>
-      (INN <$> parseDELine AltName "INN")
+    parseAltDE :: Int -> Parser AltName
+    parseAltDE indent =
+      (Simple <$> parseNameDE indent AltName) <|>
+      (Allergen <$> parseDELine indent AltName "Allergen") <|>
+      (Biotech <$> parseDELine indent AltName "Biotech") <|>
+      (CDAntigen <$> parseDELine indent AltName "CD_antigen") <|>
+      (INN <$> parseDELine indent AltName "INN")
 
     -- |Parses any DE line
-    parseDELine :: NameType -> Text -> Parser Text
-    parseDELine nameType tpe = do
+    parseDELine :: Int -> NameType -> Text -> Parser Text
+    parseDELine indent nameType tpe = do
         string "DE   "
+        count indent (char ' ')
         case nameType of
           None -> string "         "
           a    -> string $ append (pack $ show a) ": "
@@ -119,6 +120,15 @@
         char ';'
         pure res
 
+    -- |Parses internal DE entities
+    parseInternal :: Text -> Parser DE
+    parseInternal name = do
+        string "DE   " >> string name >> char ':'
+        endOfLine
+        recName  <- optional $ parseNameDE 2 RecName
+        altNames <- many' (endOfLine *> parseAltDE 2)
+        pure $ DE recName altNames [] [] [] Nothing
+
 -- |Parses DE lines of UniProt-KB text file.
 parseGN :: Parser [GN]
 parseGN = do
@@ -334,7 +344,7 @@
 parseSQ = do
     string "SQ   SEQUENCE"
     many1 space
-    seqLength <- decimal
+    length <- decimal
     space >> string "AA;"
     many1 space
     molWeight <- decimal
diff --git a/src/Bio/Uniprot/Type.hs b/src/Bio/Uniprot/Type.hs
--- a/src/Bio/Uniprot/Type.hs
+++ b/src/Bio/Uniprot/Type.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE DuplicateRecordFields #-}
 module Bio.Uniprot.Type where
 
 import           Data.Text          (Text)
@@ -230,7 +229,7 @@
 
 -- |SeQuence header - sequence data and a quick summary of its content.
 data SQ = SQ
-  { seqLength :: Int  -- ^Length of the sequence in amino acids.
+  { length    :: Int  -- ^Length of the sequence in amino acids.
   , molWeight :: Int  -- ^Molecular weight rounded to the nearest mass unit (Dalton).
   , crc64     :: Text -- ^Sequence 64-bit CRC (Cyclic Redundancy Check) value.
   , sequence  :: Text -- ^Sequence of the protein
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -33,6 +33,25 @@
 DE   AltName: CD_antigen=CD279;
 DE   Flags: Precursor;|]
 
+de2Str :: Text
+de2Str = [text|
+DE   RecName: Full=Arginine biosynthesis bifunctional protein argJ;
+DE   Includes:
+DE     RecName: Full=Glutamate N-acetyltransferase;
+DE              EC=2.3.1.35;
+DE     AltName: Full=Ornithine acetyltransferase;
+DE              Short=OATase;
+DE     AltName: Full=Ornithine transacetylase;
+DE   Includes:
+DE     RecName: Full=Amino-acid acetyltransferase;
+DE              EC=2.3.1.1;
+DE     AltName: Full=N-acetylglutamate synthase;
+DE              Short=AGS;
+DE   Contains:
+DE     RecName: Full=Arginine biosynthesis bifunctional protein argJ alpha chain;
+DE   Contains:
+DE     RecName: Full=Arginine biosynthesis bifunctional protein argJ beta chain;|]
+  
 gnStr :: Text
 gnStr = "GN   Name=PDCD1; Synonyms=PD1;"
 
@@ -690,6 +709,22 @@
 deAns = DE (Just (Name "Programmed cell death protein 1" ["Protein PD-1", "hPD-1"] []))
            [CDAntigen "CD279"] [] [] [] (Just Precursor)
 
+de2Ans :: DE
+de2Ans = DE (Just (Name "Arginine biosynthesis bifunctional protein argJ" [] [])) [] []
+            [DE (Just (Name "Glutamate N-acetyltransferase" [] ["2.3.1.35"]))
+                [Simple (Name "Ornithine acetyltransferase" ["OATase"] []),
+                 Simple (Name "Ornithine transacetylase" [] [])]
+                [] [] [] Nothing,
+             DE (Just (Name "Amino-acid acetyltransferase" [] ["2.3.1.1"]))
+                [Simple (Name "N-acetylglutamate synthase" ["AGS"] [])]
+                [] [] [] Nothing
+            ]
+            [DE (Just (Name "Arginine biosynthesis bifunctional protein argJ alpha chain" [] []))
+                [] [] [] [] Nothing,
+             DE (Just (Name "Arginine biosynthesis bifunctional protein argJ beta chain" [] []))
+                [] [] [] [] Nothing]
+            Nothing
+
 gnAns :: [GN]
 gnAns = [GN (Just "PDCD1") ["PD1"] [] []]
 
@@ -903,8 +938,9 @@
         parseOnly parseAC acStr `shouldBe` Right acAns
       it "parses DT lines" $
         parseOnly parseDT dtStr `shouldBe` Right dtAns
-      it "parses DE lines" $
+      it "parses DE lines" $ do
         parseOnly parseDE deStr `shouldBe` Right deAns
+        parseOnly parseDE de2Str `shouldBe` Right de2Ans
       it "parses GN lines" $
         parseOnly parseGN gnStr `shouldBe` Right gnAns
       it "parses OS lines" $
diff --git a/uniprot-kb.cabal b/uniprot-kb.cabal
--- a/uniprot-kb.cabal
+++ b/uniprot-kb.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 46801dc834178bde36de5bfcd64e4b397b76da7ac4dbe6f22b7275f5a1661110
+-- hash: 3517fcac83f428dec7f91394fc57d66a124e38ba92fb52f33441827f60aa1c9e
 
 name:           uniprot-kb
-version:        0.1.0.1
+version:        0.1.1.0
 synopsis:       UniProt-KB format parser
 description:    Specification implementation of https://web.expasy.org/docs/userman.html
 category:       Bio
