 	
 	AnimationProperties: [
 		"view", "properties", "curve", "time",
-		"origin", "tolerance", "precision", "modifiers", "limits"
-		"debug", "profile", "callback"
+		"origin", "tolerance", "precision", "modifiers", 
+		"limits", "debug", "profile", "callback"
 	]
 	AnimatableCSSProperties: {
 		opacity: "",

		
		########################################################
		# Finalize

		if @debug
			endTime = new Date().getTime() - startTime
			console.log "Animation[#{@animationId}].setupTime = #{endTime}ms"
			console.log "Animation[#{@animationId}].totalTime = #{utils.round @totalTime, 0}ms"
		
		console.profileEnd @animationName if @profile


		@callback? @
		@emit "end"
		
	_keyFrames: ->
		
		# Build keyframes based on our values
		
		stepIncrement = 0
		stepDelta = 100 / (@curveValues.length - 1)
		
		deltas = @_deltas()
		keyFrames = {}
		
		for curveValue in @curveValues
			
			position = stepIncrement * stepDelta
			position = utils.round position, config.roundingDecimals
			
			currentKeyFrame = {}
			
			for propertyName of @propertiesA
				currentKeyFrame[propertyName] = curveValue * deltas[propertyName] + @propertiesA[propertyName]
			
			keyFrames[position] = currentKeyFrame
			
			stepIncrement++
		
		keyFrames

	_css: ->
		
		# Create the css from a set of keyframes
		
		keyFrames = @_keyFrames()
		
		cssString = []
		cssString.push "@-webkit-keyframes #{@animationName} {\n"
		
		matrix = new Matrix()
		
		for position, values of keyFrames
			
			cssString.push "\t#{position}%\t{ -webkit-transform: "
			
			# Add the matrix based values
			for propertyName in @AnimatableMatrixProperties
				if values.hasOwnProperty propertyName
					matrix[propertyName] = values[propertyName]
				else
					matrix[propertyName] = @view[propertyName]

			cssString.push matrix.matrix().cssValues() + "; "
			
			# Add the css based values
			for propertyName, unit of @AnimatableCSSProperties
				continue if not values.hasOwnProperty propertyName
				cssString.push "#{propertyName}:#{ utils.round values[propertyName], config.roundingDecimals}#{unit}; "
				
			cssString.push "}\n"
			
		cssString.push "}\n"
		cssString.join ""

	_deltas: ->
		
		deltas = {}
