changing EnumerableExtensions.Empty to EnumerableExtensions.None and adding overload with predicate