/// <summary>
        /// Performed in different thread in loop task each time
        /// we receive new coordinates and vector
        /// </summary>
        public override void Job()
        {
            try
            {
                _publisher.Detach(this);
                BallCoordinates  ballCoordinates = _currentData;//_publisher.Data;
                List <RodAction> actions         = _manager.Decide(ballCoordinates);
                foreach (RodAction action in actions)
                {
                    RodActionPublishers[action.RodType].UpdateAndNotify(action);

                    Marks.DrawRods();
                    Marks.DrawRodPlayers(action.RodType, action.DcCoordinate, action.Rotation);

                    //Log.Common.Debug(String.Format("[{0}] mm", action.DcCoordinate));
                }
            }
            catch (Exception ex)
            {
                Log.Print("No vectors found!", eCategory.Error, LogTag.DECISION);
            }
            finally
            {
                _publisher.Attach(this);
            }
        }