refactored handler interface to return void and internally use results