// Somo ef the butt-ugly Generics syntax.
// Kennel requires two classes, much like Map.
// Here & means "and also" nothing at all to do with its regular meaning of logical intersection.
// Also note the required "extends" an interface Comparable instead of "implements" it.
public class Kennel <D extends Comparable<D> & Serializable, C>