         matrix.multiply \
           component.getEasedMatrix(ratio)
 
-      keyframes[key] = matrix.transpose().toFixed 5
+      @keys.push key
+      keyframes[key] = matrix.transpose().toFixed 3
+
 
     keyframes
 

      prefixes = @getPrefixes(options.forcePrefix)

    keyframeList = []
    keyframes = @getKeyframes()
    for key in @keys
      matrix = keyframes[key]
      transformString = "matrix3d#{matrix}"


    animations.join "\n\n"

  getKeyframes: (options = {}) ->
    keys = [0, 1]

    if options.optimized
      for component in @components
        componentKeys = component.easingObject.findOptimalKeyPoints().map (key) =>
          (key * component.duration / @duration) + (component.delay / @duration)

        keys = keys.concat componentKeys
    else
      frames = Math.round((@duration / 1000) * Bounce.FPS)
      keys.push(i / frames) for i in [0..frames]

    keys = keys.sort (a, b) -> a - b

    @keys = []
    keyframes = {}
    for key in keys
      continue if keyframes[key]
      matrix = new Matrix4D().identity()

      for component in @components
