added functions and gitignore