Adds lots of new stuff. Very much work-in-progress.