improve cellwidget and edit