started implementation state monad in version 0.2