added promise return to update