A huge refactor

Most likely everything is broke