add more tests; add countable interface