#22 add MonadError