Removed __ prefix from include guard.
Added a bunch of documentation.