support for single match API, DRY up match serialization