defined a maybe monad