private static IViewTemplate GetMasterOf(IViewTemplate t)
{
if (t == null) return null;
PropertyInfo p = t.GetType().GetProperty("Master");
if (p == null || !typeof(IViewTemplate).IsAssignableFrom(p.PropertyType)) return null;
return (IViewTemplate)p.GetValue(t, null);
}