private static BasicList <PropertyInfo> GetProperties <T>()
    {
        Type type = typeof(T);
        BasicList <PropertyInfo> output = type.GetProperties().ToBasicList();

        if (output.Exists(x => x.IsSimpleType()) == false)
        {
            throw new CustomBasicException("There are some properties that are not simple.  This only handles simple types for now");
        }
        return(output);
    }