user admin refactor