UPDATED TPS6e 6.3 Exercise 77