refactored response()