A simulator makes sure to retrieve searchables from the search queue and to search them for activated binding. the binding are then executed with a policy suitable for the simulator, be it concurrently or sequentially.

Many classes in this package are expected to be called within simulation threads:

- all Finders,
- Binding, and
- all constructors and internal methods of Simulators.

Most methods within the `Simulator` interface automatically wrap their execution within a simulation thread. The following classes serve to provide simulation threads and appropriate wrappers:

- SimulationThreadPool,
- BlockingSimulationCallable, and
- BlockingSimulationRunnable.

Some classes are merely considered as utility classes and may be used outside of simulation threads:

- all Comparators,
- BindingList, and
- SimulatorEventQueue.