major changes to structure and gitignore