           container)
         (let [ k (fgc/get-access-key target-id-path)
                prev-has-changes (:has-changes container)
-              ;before-time (System/currentTimeMillis)
+              before-time (System/currentTimeMillis)
                with-evolved-target-fresh (evolve-component original-container (assoc container :has-changes false) original-target-id-path target-id-path reason remaining-to-evolve debug-shift initialization)
-              ;_time-spent (if initialization
-              ;              nil
-              ;              (loop [pi (dec (count remaining-to-evolve))
-              ;                     _ts nil]
-              ;                (if (>= pi 0)
-              ;                  (recur
-              ;                    (dec pi)
-              ;                    (let [t (- (System/currentTimeMillis) before-time)
-              ;                          pp (fgc/conjv target-id-path (nth remaining-to-evolve pi))]
-              ;                      (do
-              ;                        (swap! stats (fn [s] (assoc s pp (+ (get s pp 0) t))))
-              ;                        ))))))
                new-has-changes (:has-changes with-evolved-target-fresh)
-               has-changes (or prev-has-changes new-has-changes)
+              _time-spent (if initialization
+                            nil
+                            (loop [pi (dec (count remaining-to-evolve))
+                                   _ts nil]
+                              (if (>= pi 0)
+                                (recur
+                                  (dec pi)
+                                  (let [t (- (System/currentTimeMillis) before-time)
+                                        pp (fgc/conjv
+                                             (fgc/conjv (fgc/conjv target-id-path (nth remaining-to-evolve pi)) (str reason))
+                                             (if new-has-changes "(Y)" "(N)"))
+                                        ]
+                                    (do
+                                      (swap! stats (fn [s] (assoc s pp (+ (get s pp 0) t))))
+                                      ))))))
+              has-changes (or prev-has-changes new-has-changes)
                with-evolved-target (assoc with-evolved-target-fresh :has-changes has-changes)
                new-aux (:aux-container with-evolved-target)
                ;_ (if (and



                            new-ret (if has-changes
                                       (let [fin-ret1 (assoc (assoc-in root-p pk new-value)
                                                         :has-structure-changes (or (:has-structure-changes root-p) has-structure-changes)
                                                         :flex-structure-changes (merge (:flex-structure-changes root-p) flex-structure-changes)


                ret container
                aux aux-container]
          (if (< pi ps-count)
                  (let [p (nth properties-to-evolve pi)
                        evolver (p (:evolvers tgt))]
                    (if (or initialization evolver)
                      (let [;; Remember: cannot use get in :evolved-properties check because of http://dev.clojure.org/jira/browse/CLJ-700
                            ;; We don track :children change during initialization. Current implementation of initialization
