High level documentation

High level documentation for the program to describe what it does.