add function
modify gitignore