refactor (respond_with)