@Override
 public <T> UncommittedBundle<T> createBundle(CommittedBundle<?> input, PCollection<T> output) {
   return InProcessBundle.create(output, input.getKey());
 }
 @Override
 public <T> UncommittedBundle<T> createKeyedBundle(
     CommittedBundle<?> input, @Nullable Object key, PCollection<T> output) {
   return InProcessBundle.create(output, key);
 }
 @Override
 public <T> UncommittedBundle<T> createRootBundle(PCollection<T> output) {
   return InProcessBundle.create(output, null);
 }