Updated Documentation

Updated UML diagram to match existing code
Update comments in code to add a quick overview of classes.