         for emotion in topLevelEmotions {
             let label = LTMorphingLabel()
             label.text = emotion
+            label.textAlignment = NSTextAlignment.Center
+
             self.addSubview(label)
             topLevelEmotionLabels[emotion] = label
         }

    var topLevelEmotionLabels : [String: LTMorphingLabel] = [:]
    override init(frame: CGRect) {
        centreEmotionLabel = LTMorphingLabel()
        super.init(frame: frame)
        setup()
    }

    public override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        return
    }
    
    func distanceBetween(p1: CGPoint, _ p2: CGPoint) -> CGFloat {
        return  CGFloat(hypotf(Float(p1.x - p2.x), Float(p1.y - p2.y)))
    }
    
    public override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
        
        if let touch = touches.first as? UITouch {
            
            let location = touch.locationInView(self)
            let initialAlpha = CGFloat(0.1)
            let startColor = UIColor(red: 0, green: 1, blue: 1, alpha: initialAlpha)
            var colors: Array<AnyObject> = [
                startColor,
                UIColor(red: 1, green: 0, blue: 0, alpha: initialAlpha),
                UIColor(red: 0, green: 0, blue: 1, alpha: initialAlpha),
                UIColor(red: 1, green: 0, blue: 1, alpha: initialAlpha),
                UIColor(red: 1, green: 1, blue: 0, alpha: initialAlpha),
                UIColor(red: 0, green: 1, blue: 0, alpha: initialAlpha),
                startColor,
            ]
            
            for (i, (emotion, label)) in enumerate(topLevelEmotionLabels) {
                let centre = CGPoint(x: label.frame.midX, y: label.frame.midY)
                let distance = distanceBetween(centre, location)
                println("== \(i): \(distance)")

                let c = colors[i] as! UIColor
                var r: CGFloat = 0
                var g: CGFloat = 0
                var b: CGFloat = 0
                var a: CGFloat = 0
                c.getRed(&r, green: &g, blue: &b, alpha: &a)
                let newAlpha = max(a, 1.0 / max(0.2 * distance, 1.0))
                println(newAlpha)
                println()
                colors[i] = UIColor(red: r, green: g, blue: b, alpha: newAlpha).CGColor
            }

            let l: AngleGradientLayer = self.layer as! AngleGradientLayer

            l.setNeedsDisplay()

            l.colors = colors
            println(l.locations)


        }
        return
    }
    public override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
