added a CoMonad