refactored controllers to use responder