refactor into multiple classes
use proper JsonObject spec for count and boolean indicators
fix tests
allow property_match filters to take paths, add tests, change to jsonobject