// instantiate cloner
BookCloner988 bookCloner = new BookCloner988();
// create clone
Book clonedBook = bookCloner.apply(book);
// clone should have same structure and values
System.out.println(clonedBook.getAuthor()); // John O'Farrel
System.out.println(clonedBook.getSections().get(1).getName()); // Section2
System.out.println(clonedBook.getSections().get(1).getParagraphs().iterator().next().getNumber()); // 1066