Clean up

Includes all commits of #9, minus the `.gitignore`, plus some improvements.

@keyboardsurfer What do you think?