consolidate callbacks