     }
     
     // MARK: - To Observable
-    func toObservable() -> Observable<[T]> {
+    public func toObservable() -> Observable<[T]> {
         return cache.flatMap { elements in self.evict(elements: elements) }
     }
 }

     * @param replace exposes the original element and expects back the one modified.
     * @return itself
     */
    func updateIterable(func1Element: Func1Element, replace: Replace) -> Actions<T> {
        return updateIterable({ (position, count, element) in func1Element(element: element)
            }, replace: { element in replace(element: element) })
    }

     * @param func1Count exposes the count of elements in the cache.
     * @return itself
     */
    public func evictFirst(func1Count: Func1Count) -> Actions<T> {
        return evict { (position, count, element) in position == 0 && func1Count(count: count) }
    }
    
