code: public <Intermediate> TransformationConcatenator<Intermediate, Target> first(Transformation<Source, Intermediate> firstTransformation) {
  
          transformationChain = new TransformationChain<Source, Target>();
          transformationChain.chain.add(firstTransformation);
  
          return new TransformationConcatenator<Intermediate, Target>();
      }
docs: Adds the first sub-transformation to the chain. Subsequent transformations can be added by invoking methods on the TransformationConcatenator returned by this method.
  
  @param firstTransformation The first transformation in the chain.
  @param <Intermediate> The type of the output produced by the (intermediate) transformation added.
  
  @return A TransformationConcatenator that allows to add additional transformations to the chain or close the chain.