refactored handler methods