array2D is now using references