export promise as deferred object