Initial commit of finished code. Retroactively added to GitHub