some changes to the structure and style