Massive redesign and refactor

I honestly can't remember all of the changes over the past few days.