     }
 }
 
-public class RelationLiteAutoLayout: LiteAutoLayout {
-    @discardableResult public func baseline(_ constant: Float = 0, relatedBy: ((Int, Int) -> Bool) = (==), multiplier: Float = 1.0, priority: UILayoutPriority = UILayoutPriority.required) -> RelationLiteAutoLayout {
+@objc public class RelationLiteAutoLayout: LiteAutoLayout {
+    @objc @discardableResult public func baseline(_ constant: Float = 0, relatedBy: ((Int, Int) -> Bool) = (==), multiplier: Float = 1.0, priority: UILayoutPriority = UILayoutPriority.required) -> RelationLiteAutoLayout {
         guard let _ = secondItem else {
             return self
         }

        
        // find the parent view to add layout constraint if exist.
        if firstItem === secondItem?.superview {
            firstItem.addConstraint(layoutConstraint)
        }else if firstItem.superview === secondItem {
            secondItem?.addConstraint(layoutConstraint)
        }else if firstItem.superview === secondItem?.superview {
            firstItem.superview?.addConstraint(layoutConstraint)

        return self
    }
    
    @objc @discardableResult public func marginRight(_ constant: Float = 0, relatedBy: ((Int, Int) -> Bool) = (==), multiplier: Float = 1.0, priority: UILayoutPriority = UILayoutPriority.required) -> ItemLiteAutoLayout {
        let item = ContraintModel(contraintType: .trailing, constants: -constant, relatedBy: relatedBy, multiplier: multiplier, priority: priority)
        constraints.append(item)
        secondItem = firstItem.superview
