add tests and show that it works