Feature/user_refactor