Push assignment #4, question #4. Still work in progress.