UPDATED TPS6e 10.2 Exercise 27