private IEnumerable<IGrouping<int, IGrouping<BookTitle, Book>>> GroupBooks(BookCollection bookCollection)
 {
     return bookCollection
         .GroupBy(x => x.Accept(y=>y))
         .GroupBy(x => x.Count())
         .OrderBy(x => x.Key);
 }
 public BookTitleCollection GetBooks(BookCollection bookCollection)
 {
     var titles = bookCollection
         .GroupBy(x => x.Accept(y=>y))
         .Select(x => x.Key);
     return new BookTitleCollection(titles);
 }