basic logic and tests
update readme