Rather big class, why making it an inner one? I would move it outside, into the package level