         didSet { superItem = ownerItem; didAddToOwner() }
     }
     open /// External representation of layout entity in coordinate space
-    var frame: CGRect
+    var frame: CGRect { didSet { bounds = contentRect(forFrame: frame) } }
     open /// Internal coordinate space of layout entity
-    var bounds: CGRect
+    var bounds: CGRect { didSet { layout() } }
     open /// Layout item that maintained this layout entity
     weak var superItem: LayoutItem?
     open /// Removes layout item from hierarchy

    open func didAddToOwner() {
        // subclass override
    }
}
#if os(iOS) || os(tvOS)
public extension LayoutGuide where Super: UIView {

/// Base class for any view placeholder that need dynamic position and/or size.
/// Used UIViewController pattern for loading target view, therefore will be very simply use him.
open class LayoutPlaceholder<Item: LayoutItem, Super: LayoutItem>: LayoutGuide<Super> {
    open private(set) lazy var itemLayout: LayoutBlock<Item> = self.item.layoutBlock(with: Layout.equal, constraints: [self.layoutConstraint(for: [LayoutAnchor.equal])])
    private weak var _item: Item?

    open weak var item: Item! {
        set { _item = newValue }
        get {
