Use standard monads and monad transformers