Change to promise style