Maybe this should take of record arrays as well, especially as they are type specific?