rename P to Promise