refactor to all whenAll with multiple callbacks