Added ability to pass in an existing promise.