Rearranged everything into a new struct, it's very broken but is at least consolidated reasonably.