Reorganize directory structure and add .gitignore