private async Task Run()
        {
            ErrorLabel.Content = "";

            var ofd = new OpenFileDialog();

            if (ofd.ShowDialog() == true)
            {
                try
                {
                    Inputs.Children.Clear();

                    var builder = new CircuitBuilder();
                    Circuit = await builder.AddDefaultNodes()
                              .AddFileSource(ofd.FileName)
                              .Build();

                    Circuit.Accept(new CircuitLoopValidatorVisitor());
                    Circuit.Accept(new CircuitConnectionValidatorVisitor());

                    Circuit.inputNodes.ForEach(inp =>
                    {
                        CheckBox checkBox = new CheckBox()
                        {
                            Content   = inp.Name,
                            IsChecked = inp.Value == Core.Nodes.NodeCurrent.High
                        };

                        checkBox.Checked += (s, e) =>
                        {
                            inp.Value = Core.Nodes.NodeCurrent.High;
                            StartAndDraw();
                        };

                        checkBox.Unchecked += (s, e) =>
                        {
                            inp.Value = Core.Nodes.NodeCurrent.Low;
                            StartAndDraw();
                        };
                        Inputs.Children.Add(checkBox);
                    });

                    StartAndDraw();
                }
                catch (Exception ex)
                {
                    ErrorLabel.Content = "Error bij het valideren: " + ex.Message;
                }
            }
        }