layout restructure prototype
Merge branch 'layout'