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

}

/**
An enum type for describing cells or views as either classes or nibs. It
helps if ReusableView is implemented on custom cells. E.g.

   .ClassWithIdentifier(MyCell.self, MyCell.reuseIdentifier)
   .NibWithIdentifier(MyCell.nib, MyCell.reuseIdentifier)
*/
public enum ReusableViewDescriptor {
    case ClassWithIdentifier(AnyClass, String)
    case NibWithIdentifier(UINib, String)
}


    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):
