refactor from de-widgets
refactor code from de-widgets