refactored callback into chained methods