public override void Initialize(Invert.IOC.UFrameContainer container)
 {
     container.RegisterInstance <IDocumentationProvider>(new uFrameMVVMDocumentationProvider(), "uFrameMVVM");
     container.RegisterInstance <IEditorCommand>(GetCommandsSelectionCommand(), typeof(CommandsChildItem).Name + "TypeSelection");;
     container.AddTypeItem <CommandsChildItem>();
     container.RegisterInstance <IEditorCommand>(GetPropertiesSelectionCommand(), typeof(PropertiesChildItem).Name + "TypeSelection");;
     container.AddTypeItem <PropertiesChildItem>();
     container.RegisterInstance <IEditorCommand>(GetCollectionsSelectionCommand(), typeof(CollectionsChildItem).Name + "TypeSelection");;
     container.AddTypeItem <CollectionsChildItem>();
     container.AddItem <BindingsReference>();
     container.AddItem <SubPropertiesReference>();
     container.AddTypeItem <InstancesReference>();
     container.AddItem <TransitionsChildItem>();
     container.AddItem <StateTransitionsReference>();
     container.AddItem <HandlersReference>();
     Element = container.AddNode <ElementNode, ElementNodeViewModel, ElementNodeDrawer>("Element");
     Element.Inheritable();
     Element.Color(NodeColor.DarkGray);
     Element.HasSubNode <SimpleClassNode>();
     Element.HasSubNode <ViewNode>();
     Element.HasSubNode <ComputedPropertyNode>();
     Element.HasSubNode <StateMachineNode>();
     Element.HasSubNode <ViewComponentNode>();
     Element.HasSubNode <CommandNode>();
     SimpleClass = container.AddNode <SimpleClassNode, SimpleClassNodeViewModel, SimpleClassNodeDrawer>("SimpleClass");
     SimpleClass.Inheritable();
     SimpleClass.Color(NodeColor.DarkDarkGray);
     View = container.AddNode <ViewNode, ViewNodeViewModel, ViewNodeDrawer>("View");
     View.Inheritable();
     View.Color(NodeColor.Blue);
     ComputedProperty = container.AddNode <ComputedPropertyNode, ComputedPropertyNodeViewModel, ComputedPropertyNodeDrawer>("ComputedProperty");
     ComputedProperty.Color(NodeColor.Green);
     Subsystem = container.AddGraph <SubsystemGraph, SubsystemNode>("SubsystemGraph");
     Subsystem.Color(NodeColor.Purple);
     Subsystem.HasSubNode <ElementNode>();
     Subsystem.HasSubNode <SimpleClassNode>();
     Subsystem.HasSubNode <CommandNode>();
     Subsystem.HasSubNode <ServiceNode>();
     SceneType = container.AddNode <SceneTypeNode, SceneTypeNodeViewModel, SceneTypeNodeDrawer>("SceneType");
     SceneType.Color(NodeColor.Orange);
     MVVM = container.AddGraph <MVVMGraph, MVVMNode>("MVVMGraph");
     MVVM.Color(NodeColor.Gray);
     MVVM.HasSubNode <SubsystemNode>();
     MVVM.HasSubNode <SceneTypeNode>();
     StateMachine = container.AddGraph <StateMachineGraph, StateMachineNode>("StateMachineGraph");
     StateMachine.Color(NodeColor.Orange);
     StateMachine.HasSubNode <StateNode>();
     State = container.AddNode <StateNode, StateNodeViewModel, StateNodeDrawer>("State");
     State.Color(NodeColor.Green);
     ViewComponent = container.AddNode <ViewComponentNode, ViewComponentNodeViewModel, ViewComponentNodeDrawer>("ViewComponent");
     ViewComponent.Color(NodeColor.Orange);
     Command = container.AddNode <CommandNode, CommandNodeViewModel, CommandNodeDrawer>("Command");
     Command.Inheritable();
     Command.Color(NodeColor.Black);
     Service = container.AddGraph <ServiceGraph, ServiceNode>("ServiceGraph");
     Service.Color(NodeColor.Black);
     container.Connectable <ElementNode, InstancesReference>();
     container.Connectable <ElementNode, Element>();
     container.Connectable <PropertiesChildItem, BindingsReference>();
     container.Connectable <PropertiesChildItem, SceneProperties>();
     container.Connectable <PropertiesChildItem, SubPropertiesReference>();
     container.Connectable <PropertiesChildItem, StateMachineNode>();
     container.Connectable <CollectionsChildItem, BindingsReference>();
     container.Connectable <CommandsChildItem, BindingsReference>();
     container.Connectable <CommandsChildItem, TransitionsChildItem>();
     container.Connectable <PropertiesChildItem, BindingsReference>();
     container.Connectable <PropertiesChildItem, ComputedPropertyNode>();
     container.Connectable <CollectionsChildItem, BindingsReference>();
     container.Connectable <ViewNode, ViewComponentNode>();
     container.Connectable <ComputedPropertyNode, TransitionsChildItem>();
     container.Connectable <ComputedPropertyNode, ComputedPropertyNode>();
     container.Connectable <TransitionsChildItem, StateTransitionsReference>();
     container.Connectable <StartState, StateNode>();
     container.Connectable <StateTransitionsReference, StateNode>();
 }