promise based tasks support return values