refactored to use respond_with