begin refactor, moving inner classes into models folder, moving fields to top of class etc MAN this class was filthy