1) Added documentation 2) Fixed Typos and refactoring.