more comprehensive gitignore file