new project structure
update .gitignore