new version, with multi_match