new layout refactor