A lot of those won't be needed (given comment above), but the remaining ones should be top level classes (and not non-static inner classes that retain a reference to the controller class)