added promise spec