added missing file to make tests pass

in the process, fixed minor stylistic issues and added .gitignore