Added files: I know these are buggy, and there are two versions! Will fix up, unit tests etc.
Oops, didn't git-add last time. Now: deleted old files, added inline comments on what to add/improve/fix next.