refact user