diff --git a/bioinformatics-toolkit.cabal b/bioinformatics-toolkit.cabal
--- a/bioinformatics-toolkit.cabal
+++ b/bioinformatics-toolkit.cabal
@@ -1,5 +1,5 @@
 name:                bioinformatics-toolkit
-version:             0.9.1
+version:             0.9.2
 synopsis:            A collection of bioinformatics tools
 description:         A collection of bioinformatics tools
 license:             MIT
diff --git a/src/Bio/Data/Bam.hs b/src/Bio/Data/Bam.hs
--- a/src/Bio/Data/Bam.hs
+++ b/src/Bio/Data/Bam.hs
@@ -20,7 +20,6 @@
 import           Bio.Data.Bed.Types
 import           Bio.Data.Fastq
 import           Bio.HTS
-import           Bio.HTS.Types        (BAM, BAMHeader, SortOrder(..))
 import           Conduit
 
 -- | Convert bam record to bed record. Unmapped reads will be discarded.
diff --git a/src/Bio/Data/Bed.hs b/src/Bio/Data/Bed.hs
--- a/src/Bio/Data/Bed.hs
+++ b/src/Bio/Data/Bed.hs
@@ -53,14 +53,12 @@
 import           Conduit
 import           Control.Arrow                ((***))
 import           Lens.Micro
-import           Control.Monad.State.Strict
 import qualified Data.ByteString.Char8        as B
 import qualified Data.Foldable                as F
 import           Data.Function                (on)
 import qualified Data.HashMap.Strict          as M
 import qualified Data.IntervalMap.Strict      as IM
 import           Data.List                    (groupBy, sortBy, group)
-import           Data.Ord                     (comparing)
 import           Data.Conduit.Zlib           (gzip, ungzip, multiple)
 import qualified Data.Vector                  as V
 import qualified Data.Vector.Algorithms.Intro as I
diff --git a/src/Bio/Data/Bed/Types.hs b/src/Bio/Data/Bed/Types.hs
--- a/src/Bio/Data/Bed/Types.hs
+++ b/src/Bio/Data/Bed/Types.hs
@@ -31,7 +31,6 @@
 import qualified Data.HashMap.Strict               as M
 import qualified Data.IntervalMap.Strict           as IM
 import           Data.Maybe                        (fromJust, fromMaybe)
-import           Data.Monoid                       ((<>))
 
 import           Bio.Utils.Misc                    (readDouble, readInt)
 
@@ -209,16 +208,17 @@
 instance BEDConvert NarrowPeak where
     asBed chr s e = NarrowPeak chr s e Nothing 0 Nothing 0 Nothing Nothing Nothing
 
-    fromLine l = NarrowPeak a (readInt b) (readInt c)
-        (if d == "." then Nothing else Just d)
-        (readInt e)
-        (if f == "." then Nothing else if f == "+" then Just True else Just False)
-        (readDouble g)
-        (readDoubleNonnegative h)
-        (readDoubleNonnegative i)
-        (readIntNonnegative j)
+    fromLine = go . B.split '\t'
       where
-        (a:b:c:d:e:f:g:h:i:j:_) = B.split '\t' l
+        go [a,b,c] = convert $ BED3 a (readInt b) $ readInt c
+        go (a:b:c:d:e:f:g:h:i:j:_) = NarrowPeak a (readInt b) (readInt c)
+            (if d == "." then Nothing else Just d)
+            (readInt e)
+            (if f == "." then Nothing else if f == "+" then Just True else Just False)
+            (readDouble g)
+            (readDoubleNonnegative h)
+            (readDoubleNonnegative i)
+            (readIntNonnegative j)
     {-# INLINE fromLine #-}
 
     toLine (NarrowPeak a b c d e f g h i j) = B.intercalate "\t"
diff --git a/src/Bio/RealWorld/ENCODE.hs b/src/Bio/RealWorld/ENCODE.hs
--- a/src/Bio/RealWorld/ENCODE.hs
+++ b/src/Bio/RealWorld/ENCODE.hs
@@ -35,7 +35,6 @@
 import qualified Data.Sequence as S
 import qualified Data.Text as T
 import qualified Data.Vector as V
-import Data.Semigroup (Semigroup(..))
 import Network.HTTP.Conduit
 import Data.Default.Class
 
