 	private var orders: ConditionOrder
 	private var zIndices: ConditionZIndex
 	
-	private var needsToAddSetteeToParent: Bool
+	private enum AddingMethod {
+		case none
+		case add
+		case insertAt(() -> Int?)
+		case insertAbove(() -> UIView?)
+		case insertBelow(() -> UIView?)
+	}
+	
+	private var addingMethod: AddingMethod
 	
 	init(parent: ParentView, settee: UIView) {
 		self.parentView = parent

	public func addToParent() -> SubviewSetupWizard {
		
		var wizard = self
		wizard.needsToAddSetteeToParent = true
		return wizard
		
	}
	
}

	
	private func addSetteeToParent() {
		
		switch self.addingMethod {
		case .none:
			break
			
		case .add:
			self.parentView.addSubview(self.setteeView)
			
		case .insertAt(let index):
			if let index = index() {
				self.parentView.insertSubview(self.setteeView, at: index)
			} else {
				self.parentView.addSubview(self.setteeView)
			}
			
		case .insertAbove(let view):
			if let view = view() {
				self.parentView.insertSubview(self.setteeView, aboveSubview: view)
			} else {
				self.parentView.addSubview(self.setteeView)
			}
			
		case .insertBelow(let view):
			if let view = view() {
				self.parentView.insertSubview(self.setteeView, belowSubview: view)
			} else {
				self.parentView.addSubview(self.setteeView)
			}
		}
		
	}
