add 2D array dynamic generation