 
     var identifier: String {
         switch self {
+        case let .DynamicWithIdentifier(identifier): return identifier
         case let .ClassWithIdentifier(_, identifier): return identifier
         case let .NibWithIdentifier(_, identifier): return identifier
         }


    func registerInView<View: ReusableSupplementaryViewBasedView>(view: View, kind: SupplementaryElementKind) {
        switch self {
        case let .ClassWithIdentifier(aClass, identifier):
            view.registerClass(aClass, forSupplementaryViewKind: kind, withIdentifier: identifier)
        case let .NibWithIdentifier(nib, identifier):


    func registerInView<View: ReusableCellBasedView>(view: View) {
        switch self {
        case .DynamicWithIdentifier(_):
            break
        case let .ClassWithIdentifier(aClass, identifier):
            view.registerClass(aClass, withIdentifier: identifier)
        case let .NibWithIdentifier(nib, identifier):
