modified code structure and gitignore