added a bit more structure and interactivity