        )))
 
 (defn- available-slots
-  [nimbus callback topologies]
+  [nimbus topologies]
   (let [storm-cluster-state (:storm-cluster-state nimbus)
         ^INimbus inimbus (:inimbus nimbus)
         
-        supervisor-ids (.supervisors storm-cluster-state callback)
-        supervisor-infos (all-supervisor-info storm-cluster-state callback)
+        supervisor-ids (.supervisors storm-cluster-state nil)
+        supervisor-infos (all-supervisor-info storm-cluster-state nil)
         existing-slots (assigned-slots storm-cluster-state)
 
         supervisor-details (for [[id info] supervisor-infos]

                                                                               existing-assignments
                                                                               topology->alive-executors)
        available-slots (->> topologies
                             (available-slots nimbus nil)
                             (map (fn [[node-id port]] {node-id #{port}}))
                             (apply merge-with set/union))
        assigned-slots (assigned-slots storm-cluster-state)

             "Assignment: " (pr-str existing-assignment) "\n"
             "Heartbeat cache: " (pr-str (@(:heartbeats-cache nimbus) (.getId topology-details)))
             )
  ;; TODO: need to consider all executors associated with a dead executor (in same slot) dead as well,
  ;; don't just rely on heartbeat being the same
  (let [conf (:conf nimbus)
        storm-id (.getId topology-details)
        executor-start-times (:executor->start-time-secs existing-assignment)
