new layout, new styles, some refactor