promise api changed from 'Q' to 'when'