dao implementations refactoring