Push assignment #3, question #16. Still work in progress.