UPDATED TPS6e 1.1 Exercise 29