simplify matcher design