 
     @discardableResult
     func margin(_ top: Percent, _ horizontal: Percent, _ bottom: Percent) -> PinLayout {
-        return marginTop(top).marginHorizontal(horizontal).marginBottom(bottom)
+        func context() -> String { return "margin(top: \(top.description), horizontal: \(horizontal.description), bottom: \(bottom.description)"}
+        return marginTop(top, context).marginHorizontal(horizontal, context).marginBottom(bottom, context)
     }
 
     @discardableResult


    @discardableResult
    func marginHorizontal(_ percent: Percent) -> PinLayout {
        return marginLeft(percent).marginRight(percent)
    }

    @discardableResult

    @discardableResult
    func marginTop(_ percent: Percent) -> PinLayout {
        func context() -> String { return "marginTop(\(percent.description))" }
        return marginTop(percent, context)
    }

    @discardableResult
    private func marginTop(_ percent: Percent, _ context: Context) -> Self {
        guard let layoutSuperviewRect = layoutSuperviewRect(context) else { return self }
        marginTop = percent.of(layoutSuperviewRect.height)
        return self
