Added MonadReader Controller
Refactoring