public void run() throws CruiseRuntimeException {
    for (CreateActorStatement create : creates) {
      ActorIdentifier act = create.getConcreteTarget();
      String atypeName = create.getActorType();
      instantiateActor(atypeName, act, create.getParameters());
    }
    for (SendMessageStatement msg : messages) {
      sendMessage(null, msg.getConcreteTarget().getName(), msg.getConcreteMessage());
    }
    while (true) {
      boolean processedMessage = false;
      for (IActor a : actors.values()) {
        if (a.poll()) {
          a.processMessage();
          processedMessage = true;
        }
      }
      if (!processedMessage) {
        break;
      }
    }
  }