@Override public SortedSet<Cell<V>> cells() { return new ForwardingSortedSet<Cell<V>>() { @Override protected SortedSet<Cell<V>> delegate() { return cells; } @Override public boolean add(Cell<V> element) { return super.add(ImmutableCell.copyOf(element)); } @Override public boolean addAll(Collection<? extends Cell<V>> collection) { return super.standardAddAll(collection); } }; }