Renamed promise since it doesn't really reflect promise spec.