Fix ExecutionContext problem
Add Functor and Monad instances for Future
Add unit tests