I think this implements no backtracking for designated rules