Added commenting to classes

Added commenting to the base classes of the program that describe the
algorithm decisions and developer reasoning.