       """)
     self.agents = [UInt64: Agent](uniqueKeysWithValues: zip(agentStates.keys, agents))
     simulatorSetStepCallbackData(handle, Unmanaged.passUnretained(self).toOpaque())
-    if let config = serverConfiguration {
-      self.serverHandle = simulationServerStart(
-        handle,
-        config.port,
-        config.connectionQueueCapacity,
-        config.workerCount)
-    }
   }
 
   deinit {
-    if let h = serverHandle { simulationServerStop(h) }
-    simulatorDelete(handle)
+    if let h = handle { simulatorDelete(h) }
   }
 
   /// Adds a new agent to this simulator, and updates

      self.port = port
      self.connectionQueueCapacity = connectionQueueCapacity
      self.workerCount = workerCount
    }
  }
}

  ///
  /// - Parameters:
  ///   - configuration: Configuration for the new simulator.
  public init(using configuration: Configuration) {
    self.configuration = configuration
    var cConfig = configuration.toC()
    defer { cConfig.deallocate() }
    self.handle = simulatorCreate(&cConfig.configuration, nativeOnStepCallback)
    simulatorSetStepCallbackData(handle, Unmanaged.passUnretained(self).toOpaque())
  }

  /// Loads a simulator from the provided file.
