         }
     }
 
-    var polarCoordinatedSubviews: [PolarCoordinated] = []
+    private var formerTouchPoint: CGPoint!
 
-    var formerPoint: CGPoint!
+    func addSubview(polarCoordinated view: PolarCoordinated) {
+        if !self.polarCoordinatedSubviews.contains(view) {
+            self.polarCoordinatedSubviews.append(view)
+        }
+
+        self.setNeedsLayout()
+    }
+
     func dragging(recognizer: UIPanGestureRecognizer) {
         switch recognizer.state {
         case .Began:
-            self.formerPoint = recognizer.locationInView(self)
+            self.formerTouchPoint = recognizer.locationInView(self)
         case .Changed:
-            let v1 = self.formerPoint - self.center
+            let v1 = self.formerTouchPoint - self.center
             let v2 = recognizer.locationInView(self) - self.center
             self.contentOffset += getAngle(a: v2, b: v1)
-            self.formerPoint = recognizer.locationInView(self)
+            self.formerTouchPoint = recognizer.locationInView(self)
         case .Ended:
-            self.formerPoint = nil
+            self.formerTouchPoint = nil
         case .Cancelled:
-            self.formerPoint = nil
+            self.formerTouchPoint = nil
         default:
             break
         }
     }
 
+    // MARK: UIView methods
+
     override func addSubview(view: UIView) { }
-
-    func addSubview(polarCoordinated view: PolarCoordinated) {
-        if !self.polarCoordinatedSubviews.contains(view) {
-            self.polarCoordinatedSubviews.append(view)
-        }
-        self.setNeedsLayout()
-    }
 
     override func layoutSubviews() {
         self.contentView.frame.size = self.frame.size
+
         for subview in self.subviewsToShow {
             self.contentView.addSubview(subview)
         }
+
         for subview in self.contentView.subviews {
             if let polar = subview as? PolarCoordinated where !self.subviewsToShow.contains(polar){
                 polar.removeFromSuperview()
             }
         }
+
         super.layoutSubviews()
     }
 

        }
    }

    var subviewsToShow: [PolarCoordinated] {
        let lower = self.contentOffset
        let upper = self.contentOffset + M_PI * 2
        return self.polarCoordinatedSubviews.filter { (p) -> Bool in

    }

    private var contentView: PolarView

    var contentOffset: Double {
        get {
            return -1 * self.offset
