adding .gitignore, and optimizing codebase