Implementation using in memory Map
Make Update monad StateT