add & modify promise