Implemented promise with specs
Added mutex to promise chain