Add @Override, private constructors for static classes and final on some instance variables where appropriate.