can use arguments for number of columns, still rough, not using tokens