refactor the handler class hierarchy