 package mx.effects
 {
 
+import flash.sampler.getInvocationCount;
+
+import mx.core.mx_internal;
+import mx.effects.effectClasses.FxAnimateInstance;
 import mx.effects.interpolation.IEaser;
 import mx.effects.interpolation.IInterpolator;
+import mx.effects.interpolation.NumberInterpolator;
 import mx.effects.interpolation.Sine;
-import mx.effects.effectClasses.FxAnimateInstance;
 import mx.events.AnimationEvent;
-
-import mx.core.mx_internal;
-import mx.effects.Effect;
-import mx.effects.IEffectInstance;
 import mx.events.EffectEvent;
 import mx.styles.IStyleClient;
 
 use namespace mx_internal;
 
-[DefaultProperty("propertyValuesList")]
+[DefaultProperty("animationProperties")]
 
 /**
  * Dispatched when the effect starts, which corresponds to a 

        animateInstance.adjustConstraints = adjustConstraints;
        animateInstance.disableLayout = disableLayout;
        
        // Deep-copy the propertyValuesList into the instance
        if (propertyValuesList != null)
        {
            animateInstance.propertyValuesList = new Array(propertyValuesList.length);
            var i:int, j:int;
            for (i = 0; i < propertyValuesList.length; ++i)
            {
                var effectHolder:PropertyValuesHolder = PropertyValuesHolder(propertyValuesList[i]);
                var holder:PropertyValuesHolder = new PropertyValuesHolder();
                holder.property = effectHolder.property;
                holder.delta = effectHolder.delta;
                if (effectHolder.values)
                {
                    holder.values = new Array(effectHolder.values.length);
                    for (j = 0; j < effectHolder.values.length; ++j)
                    {
                        holder.values[j] = effectHolder.values[j];
                    }
                }
                else
                {
                    holder.values = [undefined, undefined];
                }
                animateInstance.propertyValuesList[i] = holder;
            }
        }
    }

    //--------------------------------------------------------------------------

    /**
     * An array of AnimationProperty objects, each of which holds the
     * name of the property being animated and the values that the property
     * will take on during the animation. This array takes precedence over
     * any helper properties that may be declared in subclasses of FxAnimate.
     * For example, if this array is set directly on an FxMove object, 
     * then any helper values such as <code>xFrom</code> will be ignored. 
     */
    public var animationProperties:Array;
    
    /**
     * The easing behavior for this effect. This IEaser
