Weekly code challenge

Code is available on GitHub.