refactor
add gitignore