more comprehensive gitignore