Total refactor.

Yea… everything is different.