improved match rule