           (.append "line")
           (.attr "class" "link")
           (.style "stroke" "#C9CBCB")
-          (.style "stroke-width" 3)
-          (.each
-            (fn [link]
-              (this-as elem (add-tap-listener elem #(.onNext link-tap-subject link))))))
+          (.style "stroke-width" 3))
       (-> link-selection
           maybe-transition
           (.attr "x1" #(-> % :source positions v/x))

      (-> new-node-selection (.append "circle")
          (.attr "class" "node-dot")
          (.style "fill" "#777A7A")
          (.attr "r" max-radius)
          (.each
            (fn [node]
              (this-as elem (add-tap-listener elem #(.onNext node-tap-subject node))))))
      ; Having too many labels at once hurts performance. Add/remove labels as
      ; they move in and out of view.
      (-> node-selection

    (switch-zoom-on-spacebar! current-state animation-subject)
    (zoom-on-pinch! gesture-manager current-state animation-subject)
    (zoom-in-on-tap! gesture-manager current-state animation-subject)
    (focus-node-on-tap-2! gesture-manager current-state animation-subject)))
