Made Array2D generic