why do you need the array2d since it's already 2D?