add more detail on monads