         replaceConstraints(context.constraints, performLayout: true)
     }
 
-    mutating func layout<T: Hashable>(views: [T: View], block:([T : LayoutProxy] -> ())) {
+    func layout<T: Hashable>(views: [T: View], block:([T : LayoutProxy] -> ())) {
         let context = Context()
         let result = map(views) { ($0, LayoutProxy(context, $1)) }
 

        replaceConstraints(context.constraints, performLayout: true)
    }

    mutating func layout(views: [View], block:([LayoutProxy]) -> ()) {
        let context = Context()

        block(views.map({ LayoutProxy(context, $0) }))

        replaceConstraints(context.constraints, performLayout: false)
    }

    func constrain<T: Hashable>(views: [T: View], block:([T : LayoutProxy] -> ())) {
        let context = Context()
        let result = map(views) { ($0, LayoutProxy(context, $1)) }

