 		/**
 		 * stops the tween
 		 */
-		public function stopTween () : void
-		{
-			GlobalMCManager.instance().stage().removeEventListener(
+		public function stopTween() : void
+		{
+			g_frameEventDispatcher.removeEventListener(
 				Event.ENTER_FRAME, executeTick);
-			m_isRunning = false;
+			m_isExecuting = false;
 		}
 		
 		public function finish() : void
 		{
-			if (!m_isRunning)
+			if (!m_isExecuting)
 			{
 				return;
 			}

		/**
		 * sets the tween's direction
		 */
		public function setDirection (newDirection:Number) : void
		{
			m_direction = newDirection;
		}
		
		/**
		 * returns true if tweens is running
		 */
		public function isRunning () : Boolean
		{
			return m_isRunning;
		}
		
		/**
		 * starts the tween
		 */
		public function startTween (executeFirstTickImmediately:Boolean = false) : void
		{
			m_isCancelled = false;
			if (!m_isRunning && m_currentTime < m_duration)
			{
				GlobalMCManager.instance().stage().addEventListener(
					Event.ENTER_FRAME, executeTick);
				m_isRunning = true;
				m_startTime = getTimer() + m_currentTime;
				dispatchEvent(new TweenEvent(TweenEvent.START, true));
				if (executeFirstTickImmediately)

			{
				m_currentTime = m_duration;
			}
			tweenProperties();
			dispatchEvent(new TweenEvent(TweenEvent.TICK, true));
			if (m_currentTime == m_duration)
