diff --git a/src/Gargantext/API/Ngrams/Types.hs b/src/Gargantext/API/Ngrams/Types.hs
index 2a361a8556cc86f3fe05168147be3e1e513fd155..1f5237ba0a3557eb7fd9ce68a59e37071afb3cac 100644
--- a/src/Gargantext/API/Ngrams/Types.hs
+++ b/src/Gargantext/API/Ngrams/Types.hs
@@ -53,6 +53,7 @@ import qualified Gargantext.Database.Query.Table.Ngrams as TableNgrams
 
 ------------------------------------------------------------------------
 
+type QueryParamR = QueryParam' '[Required, Strict]
 
 ------------------------------------------------------------------------
 --data FacetFormat = Table | Chart
@@ -251,16 +252,16 @@ toNgramsElement ns = map toNgramsElement' ns
 
 mockTable :: NgramsTable
 mockTable = NgramsTable
-  [ mkNgramsElement "animal"  MapTerm      Nothing       (mSetFromList ["dog", "cat"])
-  , mkNgramsElement "cat"     MapTerm     (rp "animal")  mempty
+  [ mkNgramsElement "animal"  MapTerm        Nothing       (mSetFromList ["dog", "cat"])
+  , mkNgramsElement "cat"     MapTerm       (rp "animal")  mempty
   , mkNgramsElement "cats"    StopTerm       Nothing       mempty
-  , mkNgramsElement "dog"     MapTerm     (rp "animal")  (mSetFromList ["dogs"])
+  , mkNgramsElement "dog"     MapTerm       (rp "animal")  (mSetFromList ["dogs"])
   , mkNgramsElement "dogs"    StopTerm      (rp "dog")     mempty
-  , mkNgramsElement "fox"     MapTerm      Nothing       mempty
+  , mkNgramsElement "fox"     MapTerm        Nothing       mempty
   , mkNgramsElement "object"  CandidateTerm  Nothing       mempty
   , mkNgramsElement "nothing" StopTerm       Nothing       mempty
-  , mkNgramsElement "organic" MapTerm      Nothing       (mSetFromList ["flower"])
-  , mkNgramsElement "flower"  MapTerm     (rp "organic") mempty
+  , mkNgramsElement "organic" MapTerm        Nothing       (mSetFromList ["flower"])
+  , mkNgramsElement "flower"  MapTerm       (rp "organic") mempty
   , mkNgramsElement "moon"    CandidateTerm  Nothing       mempty
   , mkNgramsElement "sky"     StopTerm       Nothing       mempty
   ]
@@ -711,6 +712,8 @@ initMockRepo = Repo 1 s []
       $ Map.fromList
       [ (n ^. ne_ngrams, ngramsElementToRepo n) | n <- mockTable ^. _NgramsTable ]
 
+--------------------
+
 data RepoEnv = RepoEnv
   { _renv_var   :: !(MVar NgramsRepo)
   , _renv_saver :: !(IO ())
@@ -750,8 +753,7 @@ type RepoCmdM   env err m =
   , HasConfig         env
   )
 
-
-type QueryParamR = QueryParam' '[Required, Strict]
+------------------------------------------------------------------------
 
 
 -- Instances
diff --git a/src/Gargantext/Core/NodeStory.hs b/src/Gargantext/Core/NodeStory.hs
index 77e6762bb7138539d878f0cd5c13013b8baa4a02..8810b48e40a3d2f73d9b16896639625bfac554d7 100644
--- a/src/Gargantext/Core/NodeStory.hs
+++ b/src/Gargantext/Core/NodeStory.hs
@@ -12,19 +12,22 @@ Portability : POSIX
 
 module Gargantext.Core.NodeStory where
 
+
+import Codec.Serialise (Serialise())
+import Control.Lens (makeLenses, makePrisms, Getter, Iso', iso, from, (.~), (?=), (#), to, folded, {-withIndex, ifolded,-} view, use, (^.), (^?), (%~), (.~), (%=), at, _Just, Each(..), itraverse_, both, forOf_, (?~))
+import Data.Aeson hiding ((.=))
 import Data.IntMap (IntMap)
-import qualified Data.IntMap as Dict
+import Data.IntMap as Bibliotheque
 import Data.Map (Map)
 import Data.Map as Map
+import Data.Monoid
+import GHC.Generics (Generic)
 import Gargantext.API.Ngrams.Types
 import Gargantext.Core.Types (ListType(..), ListId, NodeId)
-import Data.IntMap as Bibliotheque
-import qualified Gargantext.Database.Query.Table.Ngrams as TableNgrams
-import Gargantext.Prelude
-import GHC.Generics (Generic)
-import Data.Aeson hiding ((.=))
 import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixUntagged, unPrefixSwagger, wellNamedSchema)
-
+import Gargantext.Prelude
+import qualified Data.IntMap as Dict
+import qualified Gargantext.Database.Query.Table.Ngrams as TableNgrams
 
 -- TODO : repo Migration
 repoMigration :: (s -> s') -> (p -> p') -> Repo s p -> NodeStory s' p'
@@ -36,6 +39,8 @@ data NodeStory s p = NodeStory { unNodeStory :: Map NodeId (Archive s p) }
   deriving (Generic, Show)
 
 instance (FromJSON s, FromJSON p) => FromJSON (NodeStory s p)
+instance (ToJSON s, ToJSON p) => ToJSON (NodeStory s p)
+instance (Serialise s, Serialise p) => Serialise (NodeStory s p)
 
 data Archive s p = Archive
   { _a_version :: !Version
@@ -45,9 +50,12 @@ data Archive s p = Archive
   }
   deriving (Generic, Show)
 
+instance (Serialise s, Serialise p) => Serialise (Archive s p)
+
 -- TODO Semigroup instance for unions
 
 type NodeListStory     = NodeStory NgramsState' NgramsStatePatch'
+
 type NgramsState'      = Map       TableNgrams.NgramsType NgramsTableMap
 type NgramsStatePatch' = PatchMap  TableNgrams.NgramsType NgramsTablePatch
 
@@ -57,3 +65,28 @@ instance (FromJSON s, FromJSON p) => FromJSON (Archive s p) where
 instance (ToJSON s, ToJSON p) => ToJSON (Archive s p) where
   toJSON     = genericToJSON     $ unPrefix "_a_"
   toEncoding = genericToEncoding $ unPrefix "_a_"
+
+------------------------------------------------------------------------
+initNodeStory :: Monoid s => NodeStory s p
+initNodeStory = NodeStory $ Map.singleton 1 initArchive
+
+initArchive :: Monoid s => Archive s p
+initArchive = Archive 1 mempty []
+
+initNodeListStoryMock :: NodeListStory
+initNodeListStoryMock = NodeStory $ Map.singleton nodeListId archive
+  where
+    nodeListId = 10
+    archive        = Archive 1 ngramsTableMap []
+    ngramsTableMap = Map.singleton TableNgrams.NgramsTerms
+                   $ Map.fromList
+                   [ (n ^. ne_ngrams, ngramsElementToRepo n)
+                   | n <- mockTable ^. _NgramsTable
+                   ]
+
+------------------------------------------------------------------------
+{-
+data NodeStoryEnv = NodeStoryEnv
+  { _nse_var :: !(MVar
+-}
+