new layout and functions