Refactor DAOFactories + impl