gitignore and some functions