                 s.append(sv)
             }
         }
+
         if count(s) > 0 {
             return s[0] // FIXME
         }

    }

    public init(composition elements: VisualFormat...) {
        var t = [VisualFormat]()
        for elem in elements {
            switch elem {
            case Composition(let c):
                for i in c { t.append(i) }
            default:
                t.append(elem)
            }
        }
        self = .Composition(t)

    }

    var relatedViews: [LayoutViewName] {
        switch self {
        case View(let v):
            return v.relatedViews
        case Composition(let c):
            return c.flatMap { $0.relatedViews }
        default:
            return []
        }
    }

    var viewsDictionary: [NSObject:AnyObject] {
