improve Product.apply_filter