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());
        }