Review. add comments and fix errors.
Change namespaces to Softwarte.