/// <summary>
        /// add contender to visual bracket or to unplaced list
        /// </summary>
        /// <param name="sysid"></param>
        /// <param name="b">if null contender is moving to uplaced list</param>
        public static void AddContender(int sysid, VisualBracket b = null)
        {
            var VisualContender = AllVisualContenders.AsEnumerable().Where(x => x.Contender.SystemID == sysid).Single();

            // first remove from current bracket if contender is not from unplaced panel
            RemoveContender(sysid);
            // TODO: DISCOVER BUG: there is a very rare unknown bug, probably somthing with the drag and drop,
            // the bug creates contender that exist twice, in the GUI the user dont see it, but in the lists he exist twice
            // very rare bug and its hard to dicover it
            // the if steatment should solve it as a quick fix
            if (VisualBracketsList.SelectMany(x => x.Bracket.ContendersList).Any(x => x.SystemID == sysid) == true)
            {
                return;
            }

            if (b == null)
            {
                // add to unplaced list
                VisualUnplacedBracketsList.Add(VisualContender);
            }
            else
            {
                // moving to a bracket
                b.VisualCont.Add(VisualContender);
                b.Bracket.ContendersList.Add(VisualContender.Contender);
                // refresh the new bracket
                if (b.Refresh() != null)
                {
                    // the user moved the last contender from the bracket, bracket will be removed
                    VisualBracketsList.Remove(b.Refresh());
                }
            }

            // update GUI Clocks
            FormObj.UpdateClocks();
        }
 public static void AddUnplacedContender(VisualContender cont)
 {
     VisualUnplacedBracketsList.Add(cont);
 }