dao refactor - first part