public abstract bool DeleteLanguageFromCountry(Country country);
 public abstract bool AddLanguageToCountry(Country country, string lang);
 public abstract bool DeleteCountry(Country country);
 public abstract bool SaveCountry(Country country);
 public abstract bool UpdateCountry(Country country);
 // Null on errors. Takes the first matching language for country, assuming 1 country has 1 language only.
 public abstract string GetLanguageForCountry(Country country);
 public override bool AddLanguageToCountry(Country country, string lang)
 {
     throw new NotImplementedException();
 }
 public override bool UpdateCountry(Country country)
 {
     throw new NotImplementedException();
 }
 public override string GetLanguageForCountry(Country country)
 {
     throw new NotImplementedException();
 }
 public override bool DeleteLanguageFromCountry(Country country)
 {
     throw new NotImplementedException();
 }