add unit-tests (100% coverage)