added promise as dependency