Huge update!

Hey Boone,

Sorry for delaying this for so long, I totally forgot. This does a whole bunch of stuff that's detailed in the commit messages; @BronsonQuick wrote the messages based on my code, so they might be a little vague in places. Let me know if you want any clarification on this.

I'm also happy to split this up into multiple pull requests if you'd prefer.

Cheers. :sparkles: