added promise.props