refactored ArrayType to use field_type()