list dao refactor