neatly formatted and neatly commented first two classes.