- [x] change exceptions to specific error types
- [x] document TODO comments in `doc/TODO.md`
- [x] modify `CHANGELOG.md`, `TODO.md`, `WISHLIST.md` to reflect semantic versioning
- future versions will use `git` branches to isolate development
- git tags and GitHub releases will be used to track versions
- small commits get a descriptive message
- branch merges get a release number