implement Promise.resolve(), Promise.reject() and Promise.prototype.catch()
return promise from add/subtract/toggle/merge methods