refactored callback chain