Rewrite everything to not suck