Rename monad to stateful for more clarity