DAOs re-arangement - extract common DAO code in abstract