fix widget behavior