WIP, see README.md for details.