fixed and expanded monads; added monad proofs