Feature/monads

Added monads