Lots of commits but something went wrong with dropbox and the repo so I had to lump everything into one commit