add some code and tests
git ignore