     (throw (UnsupportedOperationException. "remove"))))
 
 
-(defn decorate1 [^Metrics precipice-metrics]
+(defn decorate1 [{:keys [start-millis precipice-metrics]}]
   (let [current-millis (System/currentTimeMillis)]
     (if (instance? Rolling precipice-metrics)
       (->MetricIterator
         current-millis
         counter-to-map
         (.intervals ^Rolling precipice-metrics))
-      ;; TODO: Figure out start millis
-      (->SingleIterator 0 current-millis switcher false))))
+      (->SingleIterator start-millis current-millis precipice-metrics switcher false))))
 
 
 (defprotocol CountsView

      (do (set! is-realized? true)
          {:start-millis start-millis
           :end-millis iterator-start-millis
           :counts (func)})))
  (hasNext [this]
    (not is-realized?))
  (remove [_]

    (counter-to-map m)))

(deftype SingleIterator
  [start-millis iterator-start-millis metrics func ^:unsynchronized-mutable is-realized?]
  Iterator
  (next [this]
    (if is-realized?
