reorganized the layout into different classes, and added a subheader // #2