     var minOriginCoord: CGPoint?
     var maxOriginCoord: CGPoint? {
         get {
-            return CGPointMake(minOriginCoord!.x - 8, minOriginCoord!.y - 8)
+            return CGPointMake(minOriginCoord!.x - (minSize! / 2), minOriginCoord!.y - (minSize! / 2))
+        }
+    }
+    
+    var minSize: CGFloat?
+    var maxSize: CGFloat? {
+        get {
+            return 2 * minSize!
         }
     }
     

    override init(frame: CGRect) {
        super.init(frame: frame)
        
        self.minOriginCoord = frame.origin
    }


        
        if didBeginOverlapping && isStillOverlapping {
            var newSize = size + sizeDifference
            var newX = self.frame.origin.x - (sizeDifference / 2)
            var newY = self.frame.origin.y - (sizeDifference / 2)
            
            if newSize > self.maxSize {
                newX = self.maxOriginCoord!.x
                newY = self.maxOriginCoord!.y
                newSize = self.maxSize!
            } else if newSize < self.minSize {
                newX = self.minOriginCoord!.x
                newY = self.minOriginCoord!.y
                newSize = self.minSize!
            }
            
            self.frame = CGRectMake(newX, newY, newSize, newSize)
        } else {
            let isFarOut = tailPosition < self.frame.origin.x
            if isFarOut && size < self.maxSize {
                UIView.animateWithDuration(0.1, animations: { () -> Void in
                    self.frame = CGRectMake(self.maxOriginCoord!.x, self.maxOriginCoord!.y, self.maxSize!, self.maxSize!)
                })
            }
            
            let isFarOverlapped = tailPosition > self.frame.origin.x + size
            if isFarOverlapped && size > self.minSize {
                self.frame = CGRectMake(self.minOriginCoord!.x, self.minOriginCoord!.y, self.minSize!, self.minSize!)
            }
        }
    }
