#72: replaced new T() with Activator.CreateInstance<T>() and removed the new() constraint