private void remove(String name, List<KnapsackState> values, KnapsackState targetValue) throws IOException { logger.debug("remove: {} -> {}", name, values); ImmutableList.Builder<KnapsackState> updatedValues = ImmutableList.builder(); for (KnapsackState value : values) { if (!value.equals(targetValue)) { updatedValues.add(value); } } put(name, generate(updatedValues.build())); }