This is an incomplete commit. I'll be picking up work on a different computer later.