The simulator has several component interfaces, representing the start (triggers) and end (destroyers) conditions for each action, as well as rules to be executed. Since there are several types of triggers, rules, and destroyers, a hierarchy of interfaces was created in the simulator component. For each condition or rule to be created in the simulator engine, an interface of the simulator should be implemented in a Java class. Then the rule class must be referenced in the XML file of the simulation model. When the simulator encounters this class name in the simulation model, it learns which class should be instantiated. The simulator was designed to handle the simulation model, defined externally in an XML file, and to generate the internal representation of it.