allow promise returning from first