Add gitignore
I'm one of those terrible people who reads code by refactoring it
Use objects.create
Add retry context manager, use get_or_create