complete refactoring of all of everything basically. deal with it.