adds tooFew, tooMany, ...
fix refcnt (memory leak)
split common
reduce class hierarchy
reduce class hierarchy
add TEST_REQUIRES