a first implementation with colspan and rowspan