way more tests, better heterogenous array treatment