following justin le's post on Maybe's and monads http://blog.jle.im/entry/inside-my-world-ode-to-functor-and-monad