roughly working interface for custom matchers