Initial commit, see README.md for details.