/// <summary>
        ///     Steps one step backward
        /// </summary>
        public void StepBack()
        {
            Changed = true;
            while (Events.Count > 0)
            {
                ModelEvent evt = Events.Last();
                if (evt.Time < CurrentTime)
                {
                    CurrentTime = evt.Time;
                    break;
                }

                evt.RollBack(Runner);
                Events.Remove(evt);
            }

            if (Events.Count == 0)
            {
                CurrentTime = 0.0;
            }
        }
        /// <summary>
        /// Steps one step backward
        /// </summary>
        /// <param name="time">the time to step back</param>
        public void StepBack(double time)
        {
            currentTime = currentTime - time;
            if (currentTime < 0)
            {
                currentTime = 0;
            }

            while (Events.Count > 0)
            {
                ModelEvent evt = Events.Last();
                if (evt.Time < currentTime)
                {
                    break;
                }
                else
                {
                    evt.RollBack();
                    Events.Remove(evt);
                }
            }
        }