setup basic whenAll
refactor to all whenAll with multiple callbacks