Added a bunch of source documentation