adding .gitignore
adding tests, and supoorting files