linear dependency
add a .gitignore