messing with monads.