re-work update_cryptpw logic