Completed through Extension 1: Tags; includes two unit tests and an acceptance test