use android 4 friendly promise