 
 		animator[AnimationLoopIndexKey] = AnimationLoop._animators.push animator
 		animator.emit "start"
-		AnimationLoop._start()
+
+		Utils.domComplete ->
+			AnimationLoop._start()
 
 	remove: (animator) ->
-		AnimationLoop._animators = _.without AnimationLoop._animators, animator
+		index = AnimationLoop._animators.indexOf(animator)
+		AnimationLoop._animators[index] = null
 		animator.emit "stop"
 
 exports.AnimationLoop = AnimationLoop

			return

		AnimationLoop._running = true
		AnimationLoop._time = Utils.getTime()
		AnimationLoop._sessionTime = 0

		window.requestAnimationFrame AnimationLoop._tick

	_stop: ->
		# console.log "AnimationLoop._stop"
		AnimationLoop._running = false


	_tick: ->

		if not AnimationLoop._animators.length
			return AnimationLoop._stop()

		# 	console.log "AnimationLoop._start"

		AnimationLoop._frameCounter++

		# delta = (timestamp - AnimationLoop._timestamp) / 1000
		# fps = 1 / delta

		# It seems that a fixed fps works better.
		

		fps = 60
		delta = 1/fps
		

		AnimationLoop._sessionTime += delta

