Update .gitignore
Add tests and implementation