make ob abortable, add smarts matcher
extend lib