dao structure refactor