complete basic function
add .gitignore