private T SafeGet <T> (Func <string, string, T> function, string groupName, string key, Func <T> retMethod) { if (settings.HasGroup(groupName) && settings.HasKey(groupName, key)) { return(function(groupName, key)); } return(retMethod()); }