removed BaseWidget and BaseLayout; switched to flat structure for layouts