extract: use ordered dict and general conv funcs
add two clases; fix printing; empty target coll