 		self.origin.y = yGoal - self.height
 	}
 	
-	mutating func moveHorizontally(by xOffset: CGFloat) {
+	mutating func moveX(by xOffset: CGFloat) {
 		self.origin.x += xOffset
 	}
 	
-	mutating func moveVertically(by yOffset: CGFloat) {
+	mutating func moveY(by yOffset: CGFloat) {
 		self.origin.y += yOffset
+	}
+	
+	mutating func moveOrigin(by offset: CGPoint) {
+		self.origin.x += offset.x
+		self.origin.y += offset.y
 	}
 	
 	mutating func pinchLeft(to xGoal: CGFloat) {

	
}

extension CGRect {
	
	enum Float {

		
	}
	
	mutating func expandSize(to sizeGoal: CGSize, from basepoint: CGRect.PlaneBasePoint) {
		
		let sizeDiff = sizeGoal - self.size
		self.size = sizeGoal
		self.origin = basepoint.originOffset(from: sizeDiff)
		
	}
	
	mutating func expandSize(by sizeDiff: CGSize, from basepoint: CGRect.PlaneBasePoint) {
		
		self.size += sizeDiff
		self.origin += basepoint.originOffset(from: sizeDiff)
		
	}
	
}
