a bit of refactoring and added some new files to ignore.