Added lots of in-line documentation