introduce IWidget
refactored Widget; add ContainerWidget