add a bunch of documentation

specify 'rb' mode in ::File.open()