public Action BuildSearchLogix(RefID query)
        {
            Slot logix = mainSlot.AddSlot("Search logix");

            Network.GET_String     getString = logix.AttachComponent <Network.GET_String>();
            ValueRegister <string> url       = logix.AttachComponent <ValueRegister <string> >();

            url.Value.Value = "https://better-lightning-crate.glitch.me/";
            FormatString        formatString = logix.AttachComponent <FormatString>();
            ValueField <string> type         = logix.AttachComponent <ValueField <string> >();
            ValueField <string> format       = logix.AttachComponent <ValueField <string> >();

            format.Value.Value        = "{0}/{1}/{2}";
            formatString.Format.Value = format.Value.ReferenceID;
            formatString.Parameters.Add();
            formatString.Parameters.Add();
            formatString.Parameters.Add();
            formatString.Parameters[0].Value = url.Value.ReferenceID;
            formatString.Parameters[1].Value = type.Value.ReferenceID;
            formatString.Parameters[2].Value = query;
            getString.URL.Value = formatString.Str.ReferenceID;
            Actions.WriteValueNode <string> writeResponse = logix.AttachComponent <Actions.WriteValueNode <string> >();
            ValueRegister <string>          response      = logix.AttachComponent <ValueRegister <string> >();

            searchResponse              = response;
            writeResponse.Value.Value   = getString.Content.ReferenceID;
            writeResponse.Target.Value  = response.Value.ReferenceID;
            getString.OnResponse.Target = writeResponse.Write;
            //writeResponse.Target.OwnerNode.RemoveAllLogixBoxes();
            //LogixHelper.MoveUnder(writeResponse.Target.OwnerNode, logix, true);
            //getString.Request();
            return(getString.Request);
        }
        public void MakeUpdateResultsLogix()
        {
            Slot nodesContainer = nodesContainerSlot[0][0][0];
            Slot nodeTemplate   = mainSlot.AddSlot("NodeTemplate");
            Slot template       = nodesContainer[nodesContainer.ChildrenCount - 1].Duplicate();

            template.SetParent(nodeTemplate);
            ButtonRelay <string> buttonRelay = template.GetComponent <ButtonRelay <string> >();
            Slot templateLogix = template.AddSlot("logix");

            Actions.WriteValueNode <string>          writeThing = templateLogix.AttachComponent <Actions.WriteValueNode <string> >();
            DynamicImpulseReceiverWithValue <string> receiver   = templateLogix.AttachComponent <DynamicImpulseReceiverWithValue <string> >();
            ValueField <string> tag = templateLogix.AttachComponent <ValueField <string> >();

            tag.Value.Value        = "setUpNode";
            receiver.Tag.Value     = tag.Value.ReferenceID;
            writeThing.Value.Value = receiver.Value.ReferenceID;
            ValueField <string> response = templateLogix.AttachComponent <ValueField <string> >();

            writeThing.Target.Value = response.Value.ReferenceID;
            receiver.Impulse.Target = writeThing.Write;
            ForNode iterator = templateLogix.AttachComponent <ForNode>();

            Slot          logix = templateLogix;
            Substring     getResultSubstring = logix.AttachComponent <Substring>();
            IndexOfString findSeparator      = logix.AttachComponent <IndexOfString>();

            getResultSubstring.Str.Value = searchResponse.Value.ReferenceID;
            findSeparator.Str.Value      = searchResponse.Value.ReferenceID;
            ValueField <int> currentIndex = logix.AttachComponent <ValueField <int> >();

            getResultSubstring.StartIndex.Value = currentIndex.Value.ReferenceID;
            findSeparator.StartIndex.Value      = currentIndex.Value.ReferenceID;
            ValueField <string> separator = logix.AttachComponent <ValueField <string> >();

            separator.Value.Value    = ",";
            findSeparator.Part.Value = separator.Value.ReferenceID;
            Sub_Int lengthOfPart = logix.AttachComponent <Sub_Int>();

            lengthOfPart.A.Value            = findSeparator.ReferenceID;
            lengthOfPart.B.Value            = currentIndex.Value.ReferenceID;
            getResultSubstring.Length.Value = lengthOfPart.ReferenceID;


            //Slot logix = mainSlot.AddSlot("Update search results logix");
            //ReferenceField<Slot> containerSlotStore = logix.AttachComponent<ReferenceField<Slot>>();
            //containerSlotStore.Reference.Value = nodesContainer.ReferenceID;
            //DestroySlotChildren destroyContainerContents = logix.AttachComponent<DestroySlotChildren>();
            //destroyContainerContents.Instance.Value = nodesContainer.ReferenceID;

            //WhileNode whileNode = logix.AttachComponent<WhileNode>();
            //Substring getResultSubstring = logix.AttachComponent<Substring>();
            //IndexOfString findSeparator = logix.AttachComponent<IndexOfString>();
            //getResultSubstring.Str.Value = searchResponse.Value.ReferenceID;
            //findSeparator.Str.Value = searchResponse.Value.ReferenceID;
            //ValueField<int> currentIndex = logix.AttachComponent<ValueField<int>>();
            //getResultSubstring.StartIndex.Value = currentIndex.Value.ReferenceID;
            //findSeparator.StartIndex.Value = currentIndex.Value.ReferenceID;
            //ValueField<string> separator = logix.AttachComponent<ValueField<string>>();
            //separator.Value.Value = "|";
            //findSeparator.Part.Value = separator.Value.ReferenceID;
            //Sub_Int lengthOfPart = logix.AttachComponent<Sub_Int>();
            //lengthOfPart.A.Value = findSeparator.ReferenceID;
            //lengthOfPart.B.Value = currentIndex.Value.ReferenceID;
            //getResultSubstring.Length.Value = lengthOfPart.ReferenceID;
            //DynamicImpulseTriggerWithValue<string> receive_part = logix.AttachComponent<DynamicImpulseTriggerWithValue<string>>();
        }