Just a suggestion. May move some of the inner classes out as package private standalone class to reduce the size of this class.