WIP

Still working on this, but I'll leave it open as a PR so you can see what I'm doing.