gitignore and refactoring