starting dao refactor