Project structure and gitignore update