Add widgets architecture rework