Once again upgrades code documentation to describe pre-conditions for using this class and what the various functions accomplish