- added impl of interface

- added test cases
- added target to gitignore