refactor and add a gitignore