     
     func walkthroughDidScroll(position: CGFloat, offset: CGFloat) {
         
-        for index in 0..<subsWeights.count {
+        for index in 0..<subviewSpeeds.count {
             
             //  perform transition / scale / rotate animations
             switch WalkthroughAnimationType.fromString(animationType) {

    }
    
    
    // MARK: Animations (WIP)
    
    private func animationAlpha(index: Int, var _ offset: CGFloat) {
        let cView = view.subviews[index] as! UIView
        
        if (offset > 1.0){
            offset = 1.0 + (1.0 - offset)
        }
        
        cView.alpha = (offset)
    }
    
    private func animationCurve(index:Int, _ offset:CGFloat){
        var transform = CATransform3DIdentity
        var x:CGFloat = (1.0 - offset) * 10
        transform = CATransform3DTranslate(transform, (pow(x,3) - (x * 25)) * subsWeights[index].x, (pow(x,3) - (x * 20)) * subsWeights[index].y, 0 )
        view.subviews[index].layer.transform = transform
    }
    

    @IBInspectable var animateAlpha = false
    
    //	MARK: Properties
    
    /// The delegate which allows for comunication back up to the walkthrough view controller.
    var delegate: WalkthroughPageDelegate?
    /// Speeds of the animation applied to our subviews, mapped to each subview.
    private var subviewSpeeds = [CGPoint]()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        view.layer.masksToBounds = true
        
        //  for each view we increase the animation speed appropriately and store it as a speed for that layer
        subviewSpeeds = view.subviews.map { _ in
            self.animationSpeed.x += self.animationSpeedVariance.x
            self.animationSpeed.y += self.animationSpeedVariance.y
            return self.animationSpeed
        }
        
    }
