users refactor