private void add(String name, List<KnapsackState> values, KnapsackState targetValue)
     throws IOException {
   logger.debug("add: {} -> {}", name, values);
   put(
       name,
       generate(ImmutableList.<KnapsackState>builder().addAll(values).add(targetValue).build()));
 }
 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()));
 }