refactored _util.make_fields() to field_type() and code cleanup
refactored ArrayType to used field_type()