support multidimensional array