filled in a bunch of method comments as well as some concrete method definitions
more method definitions
added algorithm diagrams