add tests and add test suite