add Monads trait