added can_impersonate? functionality