added implementation of Maybe monad