refactor for my personal tastes
add .gitignore