public ChainIterable<T> addItem(@NotNull T item){
  return (ChainIterable<T>)super.add(Collections.<T>singleton(item));
}

public ChainIterable < T > addItem ( @ NotNull T item ) { return ( ChainIterable < T > ) super . add ( Collections . < T > singleton ( item ) ) ; }
convenience : add an item wrapping it into a singleiterable behind the scenes .
