UPDATED TPS6e 2.1 Exercise 21