             optional = true
         }
 
-        //if let array = value as? ArrayType {
-        //    print(array.elementType())
-        //}
-        
-        return AttributeDescriptor(bean: self, name: name, index: index, overallIndex: overallIndex, type: type, optional: optional)
+        if let array = value as? ArrayType {
+            elementType = array.elementType()
+        }
+        
+        return AttributeDescriptor(bean: self, name: name, index: index, overallIndex: overallIndex, type: type, elementType: elementType, optional: optional)
     }
     
     private func analyze() throws {

    public class AttributeDescriptor: PropertyDescriptor {
        // override
        
        override init(bean: BeanDescriptor, name: String, index: Int, overallIndex: Int, type: Any.Type, optional: Bool) {
            super.init(bean: bean, name: name, index: index, overallIndex: overallIndex, type: type, optional: optional);
        }
    }
    

        let mirror : Mirror  = Mirror(reflecting: value)
        var type = mirror.subjectType
        var optional = false
        var elementType : Any.Type? = nil
        
        // what the hell?

