diff --git a/hoodle-types.cabal b/hoodle-types.cabal
--- a/hoodle-types.cabal
+++ b/hoodle-types.cabal
@@ -1,5 +1,5 @@
 Name:		hoodle-types
-Version:	0.2.1
+Version:	0.2.2
 Synopsis:	Data types for programs for hoodle file format
 Description: 	Hoodle file format data type including generic interface
 License: 	BSD3
@@ -23,10 +23,10 @@
                    base == 4.*, 
                    bytestring >= 0.9, 
                    mtl > 2, 
-                   strict == 0.3.*, 
+                   strict > 0.3 , 
                    containers >= 0.4, 
                    lens >= 2.5,
-                   cereal == 0.3.*, 
+                   cereal > 0.3, 
                    uuid >= 1.2.6
   Exposed-Modules: 
                    Data.Hoodle.BBox
diff --git a/src/Data/Hoodle/Generic.hs b/src/Data/Hoodle/Generic.hs
--- a/src/Data/Hoodle/Generic.hs
+++ b/src/Data/Hoodle/Generic.hs
@@ -18,13 +18,12 @@
 module Data.Hoodle.Generic where
 
 -- from other packages
--- import Control.Applicative
 import Control.Category
 import Control.Lens 
 import Data.ByteString.Char8 hiding (map,zip)
 import Data.Foldable
 import Data.Functor
-import qualified Data.IntMap as IM --  hiding (map)
+import qualified Data.IntMap as IM 
 import qualified Data.Sequence as Seq 
 import Data.UUID.V4 
 -- from this package
@@ -47,22 +46,12 @@
                            , gpage_bkg :: bkg 
                            , gpage_lyrs :: cntnr lyr }  
 
--- -- | Generic layer data having generic items 
--- data GLayer cntnr itm = GLayer { glayer_itms :: cntnr itm } 
-            
 -- | Generic buffered layer having generic items
 data GLayer buf cntnr itm = GLayer 
                              { glayer_buf :: buf 
-                             -- , glayer_strks :: cntnr strk 
                              , glayer_itms :: cntnr itm 
                              } 
                        
-{-                          
--- |
-instance (Functor s) => Functor (GLayer s) where
-  fmap f (GLayer bstrs) = GLayer (fmap f strs)
--}
-
 -- | 
 instance (Functor cntnr) => Functor (GLayer buf cntnr) where
   fmap f (GLayer buf itms) = GLayer buf (fmap f itms) 
@@ -121,22 +110,17 @@
 gbuffer :: Simple Lens (GLayer buf cntnr itm) buf 
 gbuffer = lens glayer_buf (\f a -> f { glayer_buf = a } )
 
-
-
 -- |
 class (Foldable s) => Listable s where  
   fromList :: [a] -> s a 
---   toList :: s a -> [a]
   
 -- |
 instance Listable [] where
   fromList = id 
---   toList = id 
   
 -- | 
 instance Listable IM.IntMap where 
   fromList = IM.fromList . zip [0..] 
---   toList = Data.IntMap.elems 
   
 -- | 
 instance Listable Seq.Seq where
@@ -151,5 +135,3 @@
 -- | 
 emptyGPage :: (Listable cntnr) => Dimension -> bkg -> GPage bkg cntnr a 
 emptyGPage dim bkg = GPage dim bkg (fromList [])
-  
-
diff --git a/src/Data/Hoodle/Simple.hs b/src/Data/Hoodle/Simple.hs
--- a/src/Data/Hoodle/Simple.hs
+++ b/src/Data/Hoodle/Simple.hs
@@ -202,9 +202,10 @@
 data Revision = Revision { _revmd5 :: !ByteString 
                          , _revtxt :: !ByteString 
                          }  
+              | RevisionInk { _revmd5 :: !ByteString
+                            , _revink :: [Stroke] } 
               deriving Show 
 
-
 -- | 
 data Hoodle = Hoodle { hoodle_id :: ByteString
                      , hoodle_title :: !Title
@@ -257,9 +258,11 @@
 revmd5 :: Simple Lens Revision ByteString
 revmd5 = lens _revmd5 (\f a -> f { _revmd5 = a } )
 
+{-
 -- | 
 revtxt :: Simple Lens Revision ByteString
 revtxt = lens _revtxt (\f a -> f { _revtxt = a } )
+-}
 
 -- | 
 embeddedPdf :: Simple Lens Hoodle (Maybe ByteString)
diff --git a/src/Data/Hoodle/Simple/V0_1_1.hs b/src/Data/Hoodle/Simple/V0_1_1.hs
--- a/src/Data/Hoodle/Simple/V0_1_1.hs
+++ b/src/Data/Hoodle/Simple/V0_1_1.hs
@@ -67,16 +67,6 @@
                , svg_dim :: !Dimension }  
            deriving (Show,Eq,Ord)
                     
-{-
-data Link = Link { link_id :: String 
-                 , link_text :: Maybe S.ByteString
-                 , link_command :: Maybe S.ByteString 
-                 , link_render :: S.ByteString
-                 , link_pos :: (Double,Double)
-                 , link_dim :: !Dimension }  
-           deriving (Show,Eq,Ord)                    
--}                    
-
 -- | 
 instance SE.Serialize Stroke where
     put Stroke{..} = SE.putWord8 0 
@@ -112,19 +102,7 @@
     get = SVG <$> SE.get <*> SE.get <*> SE.get <*> SE.get <*> SE.get
     
     
-{-
--- | 
-instance SE.Serialize Link where
-    put Link {..} = SE.put link_id
-                    >> SE.put link_text
-                    >> SE.put link_command 
-                    >> SE.put link_render
-                    >> SE.put link_pos
-                    >> SE.put link_dim
-    get = SVG <$> SE.get <*> SE.get <*> SE.get <*> SE.get <*> SE.get <*> SE.get    
--}
 
-
 -- | 
 instance SE.Serialize Item where
     put (ItemStroke str) = SE.putWord8 0 
@@ -133,14 +111,11 @@
                           >> SE.put img
     put (ItemSVG svg) = SE.putWord8 2
                         >> SE.put svg 
-    -- put (ItemLink lnk) = SE.putWord8 3
-    --                      >> SE.put lnk                         
     get = do tag <- SE.getWord8 
              case tag of 
                0 -> ItemStroke <$> SE.get
                1 -> ItemImage <$> SE.get
                2 -> ItemSVG <$> SE.get
-               -- 3 -> ItemLink <$> SE.get
                _ -> fail "err in Item parsing"
 
 -- |    
@@ -184,7 +159,6 @@
 
 -- | 
 data Layer = Layer { layer_items :: ![Item] } 
-             -- Layer { layer_strokes :: ![Stroke] }
            deriving Show 
 
 -- | 
@@ -229,12 +203,6 @@
 items :: Simple Lens Layer [Item]
 items = lens layer_items (\f a -> f { layer_items = a } )
 
-{-
--- | 
-strokes :: Simple Lens Layer [Stroke]
-strokes = lens layer_strokes (\f a -> f { layer_strokes = a } )
--}
-
 --------------------------
 -- empty objects
 --------------------------
@@ -245,7 +213,7 @@
 
 -- | 
 emptyLayer :: Layer 
-emptyLayer = Layer { layer_items = [] } --  { layer_strokes = [] }
+emptyLayer = Layer { layer_items = [] } 
 
 -- | 
 emptyStroke :: Stroke 
