testing different promise implementation