Eventually it did turn out rather fine (with the simulator I mean), but I decided to write my own. In Java. And what I discovered, while working with threads, is this: make some threads, add them as observers to an object, terminate the threads (from the run() method I mean), and still your threads can wake up and do something when someone sends a message through the object observed. This is pretty cool...