Try monad.  First pass.