4 new classes, shorter main method