Reupload

Past versions were conflicted, and messy. Got this working copy from
Izzi’s most recent branch.