UPDATED TPS6e 6.2 Exercise 57