private void Target_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Point mousePos = e.GetPosition(target);

            if (Keyboard.Modifiers == ModifierKeys.Control) //bareshaft
            {
                BareshaftGraphic bareshaft = new BareshaftGraphic(mousePos);
                lBareshaft.Add(bareshaft);
            }
            else
            {
                FletchedGraphic fletched = new FletchedGraphic(mousePos);
                lFletched.Add(fletched);
            }

            UpdateTargetChildren();
        }
        //Target graphics
        private void UpdateTargetChildren()
        {
            target.Children.Clear();
            AddTargetGraphic();

            if (lBareshaft.GetNumElements() > 0)
            {
                int head = lBareshaft.GetHead();
                lBareshaft.SetHead(0);
                for (int i = 0; i < lBareshaft.GetSize(); i++)
                {
                    BareshaftGraphic bareshaft = (BareshaftGraphic)lBareshaft[i];
                    if (bareshaft != null)
                    {
                        target.Children.Add(bareshaft);                             //ienumerator will go through the whole array even if elements are null
                    }
                    lBareshaft.MoveNext();
                }
                lBareshaft.SetHead(head);
            }

            if (lFletched.GetNumElements() > 0)
            {
                int head = lFletched.GetHead();
                lFletched.SetHead(0);
                for (int i = 0; i < lFletched.GetSize(); i++)
                {
                    FletchedGraphic fletched = (FletchedGraphic)lFletched[i];
                    if (fletched != null)
                    {
                        target.Children.Add(fletched);
                    }
                    lFletched.MoveNext();
                }
                lFletched.SetHead(head);
            }
        }