         return self
     }
     
+    /// Added a view as the subview of this SimpleAutoLayout object's superview, and place it below the last subview that we added a constraint through SimpleAutoLayout.
+    /// @param item the subview to be added
+    /// @param distance the distance between this subview and the last subview
+    /// @param w the subview's width
+    /// @param h the subview's height
+    /// @param aspectRatio the subview's width/height ratio
+    /// @param alignToLast a dictionary where keys are NSLayoutAttribute, the values are the difference between this subview's value on that attribute and the last subview's. (The last subview is the subview which we set layout constraint through SimpleAutoLayout)
+    /// @param endWithMargin if passed in, this subview will have this such distance to the bottom border of the superview
     public func goDown(item: UIView, _ distance: CGFloat = 0, w: CGFloat? = nil, h: CGFloat? = nil, aspectRatio: CGFloat? = nil, alignToLast: [NSLayoutAttribute: CGFloat]? = nil, endWithMargin: CGFloat? = nil) -> SimpleAutoLayout {
         add(item)
         addConstraint(item, a1: .Top, item2: lastItem, a2: .Bottom, constant: distance)

        return self
    }
    
    public func width(item: UIView, _ w: CGFloat) -> SimpleAutoLayout {
        addConstraint(item, a1: .Width, constant:w)
        lastItem = item
        return self
    }
    public func height(item: UIView, _ h: CGFloat) -> SimpleAutoLayout {
        addConstraint(item, a1: .Height, constant:h)
        lastItem = item
        return self
    }
    public func aspectRatio(item: UIView, _ wDividedByH: CGFloat) -> SimpleAutoLayout {
        addConstraint(item, a1: .Width, item2: item, a2: .Height, multiplier: wDividedByH)
        lastItem = item

    
    // MARK: - Basic Placement and Alignment
    
    /// Added a view as the subview of this SimpleAutoLayout object's superview.
    /// Other than the subview to be added, all params are optional. Not passing in means on constraint on that field.
    /// @param item the subview to be added
    /// @param fromLeft the distance from this superview's left border to this subview's left border
    /// @param fromRight the distance from this superview's right border to this subview's right border
    /// @param fromTop the distance from this superview's top border to this subview's top border
    /// @param fromBottom the distance from this superview's bottom border to this subview's bottom border
    /// @param fromCenterX the distance from this superview's center X to this subview's center X
    /// @param fromCenterY the distance from this superview's center Y to this subview's center Y
    /// @param alignToLast a dictionary where keys are NSLayoutAttribute, the values are the difference between this subview's value on that attribute and the last subview's. (The last subview is the subview which we set layout constraint through SimpleAutoLayout)
    /// @param w the subview's width
    /// @param h the subview's height
    /// @param aspectRatio the subview's width/height ratio
    public func place(item: UIView,
                      fromLeft: CGFloat? = nil, fromRight: CGFloat? = nil,
                      fromTop: CGFloat? = nil, fromBottom: CGFloat? = nil,
