updated gitignore
abstracted some of the more utility methods into its own class