adds .gitignore
main func; add test cases