refactor UserDao