adding a lot of documentation comments on the code.
adding option package
typo
typo
typo
checkpoint
using xml.dom library instead of redo the process.