added a bunch of structure and style