Added Comments and functionality

This is the final submission for grading.  It is functional and fully
commented.