         self.reset = true
         return self
     }
+    
+    /// Optimize the constraint to be created.
+    ///
+    /// - returns: The anchor to allow chainable calls
+    public func create() -> Anchor
+    {
+        self.creation = true
+        return self
+    }
 
     /// An anchor used to set constant width or height constraint.
     ///

        anchor.relation = relation
        anchor.priority = priority
        anchor.reset = reset
    }

    /// Sets the first common ancestor that will be used to update the constraint.

                }
                else
                {
                    if anchor2.creation
                    {
                        // Create new constraint (optimized path)
                        createConstraintWithAncestor(commonAncestor, anchor1: anchor1, anchor2: anchor2)
                    }
                    else if let (constraint, reversed) = findConstraintWithAncestor(commonAncestor, anchor1: anchor1, anchor2: anchor2)
                    {
                        if reversed || constraint.relation != anchor2.relation || constraint.multiplier != CGFloat(anchor2.multiplier) || constraint.priority != anchor2.priority
                        {
