separate reading and writing of cell widths to prevent layout thrashing