dynamic width update