public static Toolkit CreateToolkit<T> (bool isGuest) where T: ToolkitEngineBackend { var t = typeof (T); var result = new Toolkit(); result.backend = (ToolkitEngineBackend)Activator.CreateInstance(t); result.Initialize(isGuest); result.toolkitType = ToolkitType.Other; return result; }