Initial commit of code

This version has been improved significantly from that used for the
website last year.