add basic functionalities(such then,resolve,reject)