flexible layout
restructure of global objects, use delegates