// Update is called once per frame
 void Update()
 {
     if (!this.IsReversing)
     {
         updateSafeTimeStamps();
         for (int i = reversableObjects.Count - 1; i >= 0; i--)
         {
             Reversable r = this.reversableObjects[i];
             if (r.getDestroyedTs() != -1 && Time.time - r.getDestroyedTs() > 1.5 * MAX_REWIND_TIME)
             {
                 //Will newver be rewinded => realy destroy object
                 this.removeObject(r);
             }
         }
     }
     else
     {
         reverse();
     }
 }
 public void removeObject(Reversable obj)
 {
     initialize();
     this.reversableObjects.Remove(obj);
 }
 public void addObject(Reversable obj)
 {
     initialize();
     this.reversableObjects.Add(obj);
 }