Basic Architecture and gitignore