public SignalNode GetOrCreateChildNodeFor(TypeId typeId)
            {
                SignalNode node;

                if (!_lookup.TryGetValue(typeId.UniqueId, out node))
                {
                    var registry = Registry.ClonePlus(_tree._registeredTypeRegisteries[typeId.UniqueId]);
                    node = new SignalNode(_tree, registry);

                    _lookup.Add(typeId.UniqueId, node);
                }

                return(node);
            }
 /// <summary> Default constructor. </summary>
 public SignalRegistryTree()
 {
     _registeredTypeRegisteries = new List <TypeSignalRegistry>();
     Root = new SignalNode(this);
 }