class CombinationsOfChange {

  public List<List<Integer>> get(int[] availableChange, int value) {
    validateInputData(availableChange, value);

    List<List<Integer>> changeCombinations = new LinkedList<List<Integer>>();
    for (int i = 0; i < availableChange.length; i++) {
      int[] availableMoneys = Arrays.copyOfRange(availableChange, 0, availableChange.length - i);
      List<Integer> change = getChange(availableMoneys, value);
      changeCombinations.add(change);
    }
    return changeCombinations;
  }

  public  CombinationsOfChange();

}