Updating promise implementation