Optimized to don't instantiate multiple Promises
several updates