      * when the animation is complete.
      */ 
     protected var affectsConstraints:Boolean;
+
+    /**
+     * This flag indicates whether a subclass would like their target to 
+     * be automatically kept around during a transition and removed when it
+     * finishes. This capability applies specifically to effects like
+     * Fade which act on targets that go away at the end of the
+     * transition and removes the need to supply a RemoveAction or similar
+     * effect to manually keep the item around and remove it when the
+     * transition completes. In order to use this capability, subclasses
+     * should set this variable to true and also expose the "parent"
+     * and "elementHost" properties in their affectedProperties array so 
+     * that the effect instance has enough information about the target
+     * and container to do the job.
+     */
+    protected var autoRemoveTarget:Boolean = false;
+        
     
     private var _easer:IEaser;    
     public function set easer(value:IEaser):void

        finishEffect();
        if (affectsConstraints)
            reenableConstraints();
    }
    
    private var constraintsHolder:Object;
    
    private function reenableConstraint(name:String):void

import flash.events.TimerEvent;
import flash.utils.Timer;

import flex.core.Group;
import flex.effects.Animation;
import flex.effects.PropertyValuesHolder;
import flex.effects.easing.IEaser;
