new layout is complete, can merge back into master