         }else{
             //array of custom type
             propertyStr = constructor.fetchArrayOfCustomTypePropertyFromMap
-            let perpertyElementType = elementTypeNameFromArrayProperty(property.type)
+            let perpertyElementType = propertyTypeWithoutArrayWords(property)
             propertyStr = propertyStr.stringByReplacingOccurrencesOfString(elementType, withString: perpertyElementType)
             
         }

        if(propertyTypeIsBasicType(property)){
            
            if constructor.fetchArrayOfBasicTypePropertyFromMap != nil{
                let type = elementTypeNameFromArrayProperty(property.type)
                let index = find(lang.basicTypesWithSpecialFetchingNeeds, type)
                if index != nil{
                    propertyStr = constructor.fetchArrayOfBasicTypePropertyFromMap

                    
                }
                propertyHandlingStr = propertyHandlingStr.stringByReplacingOccurrencesOfString(varName, withString:property.nativeName)
                
                propertyHandlingStr = propertyHandlingStr.stringByReplacingOccurrencesOfString(varType, withString:property.type)
                
                propertyHandlingStr = propertyHandlingStr.stringByReplacingOccurrencesOfString(jsonKeyName, withString:property.jsonName)
                
                propertyHandlingStr = propertyHandlingStr.stringByReplacingOccurrencesOfString(additionalCustomTypeProperty, withString:"")
                
                fileContent += propertyHandlingStr
            }
            fileContent += method.returnStatement
