basic implementation
added demo code
adds rudimentary tests
Adds negative test cases
(chore) code formatting
initial release