Initial commit
Part 1
Part 2
Part 3
Resolve merge conflict in .gitignore