refactoring DAL