/// <summary>
        /// Create and start all neccessary components in the system.
        /// </summary>
        public void start()
        {
            AbstractDeviceManager deviceManager = createDeviceManager();

            deviceManager.start();

            AbstractActivityModel activityModel = createActivityModel();

            executor = new ActivityExecutor(activityModel);
            executor.start();
        }
        private bool on;//indicate the executor is active

        public ActivityExecutor(AbstractActivityModel model)
        {
            activityModel = model;
            queue         = new ConcurrentQueue <Activity>();
            historyList   = new List <Activity>();
        }