read as multidimensional array