change factory method name to 'createPromise'
test for timeout handling