Code clean up and update documentation
Add .gitignore