renamed getType to reflect weird array behavior
rename internal type field
make a field info field final