refactor daos