public static Function<Integer, Integer> composeFunctions(Function<Integer, Integer> f1, Function<Integer, Integer> f2) {
    return f1.andThen(f2);
  }
@Test
  public void testComposeFunctions() {
    Function<Integer, Integer> timesTwo = x -> x * 2;
    Function<Integer, Integer> square = x -> x * x;

    Function<Integer, Integer> composed = FunctionComposer.composeFunctions(timesTwo, square);

    assertEquals("Expected output of composed functions is 36", 36, (int) composed.apply(3));
  }