created two new classes
some clean-up and fixed the output, added some new methods to simplify some things