diff --git a/doc/class-diagram.dia b/doc/class-diagram.dia
index e2849f55..c3b1a9d3 100644
--- a/doc/class-diagram.dia
+++ b/doc/class-diagram.dia
@@ -68,16 +68,16 @@
-
+
-
+
-
+
#SimulatorController#
@@ -215,10 +215,10 @@
- #m_EvList#
+ #m_LstList#
- #EventList#
+ #ListenerManager#
##
@@ -861,10 +861,10 @@
- #ev#
+ #li#
- #BaseEvent*#
+ #BaseListener*#
##
@@ -886,7 +886,7 @@
##
- #BaseEvent*#
+ #BaseListener*#
@@ -909,10 +909,10 @@
- #ev#
+ #li#
- #BaseEvent#
+ #BaseListener*#
##
@@ -957,10 +957,10 @@
- #ev#
+ #li#
- #BaseEvent*#
+ #BaseListener*#
##
@@ -1002,7 +1002,25 @@
-
+
+
+
+ #flow#
+
+
+ #ExperimentFlow*#
+
+
+ #NULL#
+
+
+ ##
+
+
+
+
+
+
@@ -1012,7 +1030,7 @@
##
- #BaseEvent*#
+ #BaseListener*#
@@ -1180,7 +1198,7 @@
- #onBreakpointEvent#
+ #onBreakpoint#
##
@@ -1207,6 +1225,23 @@
+
+
+ #cpu#
+
+
+ #ConcreteCPU*#
+
+
+ ##
+
+
+ ##
+
+
+
+
+
#instrPtr#
@@ -1224,11 +1259,28 @@
+
+
+ #address_space#
+
+
+ #address_t#
+
+
+ ##
+
+
+ ##
+
+
+
+
+
- #onMemoryAccessEvent#
+ #onMemoryAccess#
##
@@ -1255,6 +1307,23 @@
+
+
+ #cpu#
+
+
+ #ConcreteCPU*#
+
+
+ ##
+
+
+ ##
+
+
+
+
+
#addr#
@@ -1291,7 +1360,7 @@
- #rw#
+ #is_write#
#bool#
@@ -1306,11 +1375,28 @@
+
+
+ #instrPtr#
+
+
+ #addess_t#
+
+
+ ##
+
+
+ ##
+
+
+
+
+
- #onInterruptEvent#
+ #onInterrupt#
##
@@ -1339,7 +1425,24 @@
- #type#
+ #cpu#
+
+
+ #ConcreteCPU*#
+
+
+ ##
+
+
+ ##
+
+
+
+
+
+
+
+ #interruptNum#
#unsigned#
@@ -1375,7 +1478,7 @@
- #onTrapEvent#
+ #onTrap#
##
@@ -1404,7 +1507,24 @@
- #type#
+ #cpu#
+
+
+ #ConcreteCPU*#
+
+
+ ##
+
+
+ ##
+
+
+
+
+
+
+
+ #trapNum#
#unsigned#
@@ -1423,7 +1543,7 @@
- #onGuestSystemEvent#
+ #onGuestSystem#
##
@@ -1488,7 +1608,7 @@
- #onJumpEvent#
+ #onJump#
##
@@ -1515,6 +1635,23 @@
+
+
+ #cpu#
+
+
+ #ConcreteCPU*#
+
+
+ ##
+
+
+ ##
+
+
+
+
+
#flagTriggered#
@@ -2596,18 +2733,18 @@
-
+
-
+
-
-
-
+
+
+
@@ -2747,17 +2884,17 @@
-
+
-
+
-
-
+
+
@@ -2788,19 +2925,19 @@
-
+
-
+
-
+
-
+
-
+
#ListenerManager#
@@ -2895,7 +3032,7 @@
#m_pFired#
- #BaseEvent*#
+ #BaseListener*#
##
@@ -2982,52 +3119,6 @@
-
-
- #m_Bp_cache#
-
-
- #BufferCache<BPEvent*>#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
- #m_Io_cache#
-
-
- #BufferCache<IOPortEvent*>#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
@@ -3061,10 +3152,10 @@
- #ev#
+ #li#
- #BaseEvent*#
+ #BaseListener*#
##
@@ -3078,7 +3169,7 @@
- #pExp#
+ #flow#
#ExperimentFlow*#
@@ -3126,58 +3217,10 @@
- #ev#
+ #li#
- #BaseEvent*#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
- #getEventsOf#
-
-
- ##
-
-
- #const eventlist_t*#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #pWhat#
-
-
- #ExperimentFlow*#
+ #BaseListener*#
##
@@ -3214,7 +3257,7 @@
-
+
@@ -3229,7 +3272,7 @@
##
- #BaseEvent*#
+ #BaseListener*#
@@ -3330,10 +3373,10 @@
- #pEv#
+ #li#
- #BaseEvent*#
+ #BaseListener*#
##
@@ -3349,7 +3392,7 @@
- #getEventCount#
+ #getListenerCount#
##
@@ -3370,7 +3413,7 @@
-
+
@@ -3385,7 +3428,7 @@
##
- #iterator#
+ #void#
@@ -3408,27 +3451,10 @@
- #it#
+ #idx#
- #iterator#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
- #skip_deletelist#
-
-
- #bool#
+ #index_t#
##
@@ -3450,7 +3476,7 @@
##
- #iterator#
+ #void#
@@ -3473,10 +3499,10 @@
- #it#
+ #flow#
- #iterator #
+ #ExperimentFlow*#
##
@@ -3552,7 +3578,7 @@
- #fireActiveEvents#
+ #triggerActiveListeners#
##
@@ -3582,67 +3608,7 @@
- #getBPBuffer#
-
-
- ##
-
-
- #BufferCache<BPEvent*>&#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #getIOBuffer#
-
-
- ##
-
-
- #BufferCache<IOPortEvent*>&#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #addToCaches#
+ #makeActive#
##
@@ -3651,7 +3617,7 @@
#void#
-
+
##
@@ -3671,10 +3637,10 @@
- #ev#
+ #pLi#
- #BaseEvent*#
+ #BaseListener*#
##
@@ -3688,84 +3654,6 @@
-
-
- #removeFromCaches#
-
-
- ##
-
-
- #void#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #ev#
-
-
- #BaseEvent*#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
- #clearCaches#
-
-
- ##
-
-
- #void#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -4380,17 +4268,17 @@
-
+
-
+
-
-
+
+
@@ -4407,7 +4295,7 @@
-
+
@@ -4694,13 +4582,13 @@
-
+
-
+
@@ -4822,25 +4710,7 @@
-
-
-
- #ped#
-
-
- #ExperimentData*#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
+
@@ -4990,18 +4860,18 @@
-
+
-
+
-
-
-
+
+
+
@@ -5141,18 +5011,18 @@
-
+
-
+
-
-
-
+
+
+
@@ -5218,17 +5088,17 @@
-
+
-
+
-
-
+
+
@@ -5733,8 +5603,8 @@
-
-
+
+
@@ -5878,8 +5748,8 @@
-
-
+
+
@@ -6450,15 +6320,15 @@
-
+
-
-
+
+
@@ -6528,8 +6398,8 @@
-
-
+
+
@@ -7217,8 +7087,8 @@
-
-
+
+
@@ -7242,17 +7112,17 @@
-
+
-
+
-
-
+
+
@@ -7466,8 +7336,8 @@
-
-
+
+
@@ -8053,8 +7923,8 @@
-
-
+
+
@@ -8450,8 +8320,8 @@
-
-
+
+
@@ -10568,17 +10438,17 @@
-
+
-
+
-
-
+
+
@@ -11007,8 +10877,8 @@
-
-
+
+
@@ -11158,8 +11028,8 @@
-
-
+
+
@@ -11309,8 +11179,8 @@
-
-
+
+
@@ -11350,8 +11220,8 @@
-
-
+
+
@@ -12002,8 +11872,8 @@
-
-
+
+
@@ -12043,8 +11913,8 @@
-
-
+
+
@@ -13247,17 +13117,17 @@
-
+
-
+
-
-
+
+
@@ -13332,8 +13202,8 @@
-
-
+
+
@@ -13568,8 +13438,8 @@
-
-
+
+
@@ -15507,8 +15377,8 @@
-
-
+
+
@@ -15768,8 +15638,8 @@
-
-
+
+
@@ -15809,8 +15679,8 @@
-
-
+
+
@@ -16810,8 +16680,8 @@
-
-
+
+
@@ -17319,8 +17189,8 @@
-
-
+
+
@@ -17360,8 +17230,8 @@
-
-
+
+
@@ -17390,520 +17260,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #BufferCache#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #m_Buffer#
-
-
- #std::list<T>#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #add#
-
-
- ##
-
-
- #void#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #val#
-
-
- #const T&#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
- #remove#
-
-
- ##
-
-
- #void#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #val#
-
-
- #const T&#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
- #erase#
-
-
- ##
-
-
- #iterator#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #idx#
-
-
- #iterator#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
- #clear#
-
-
- ##
-
-
- #void#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #begin#
-
-
- ##
-
-
- #iterator#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #end#
-
-
- ##
-
-
- #iterator#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #makeActive#
-
-
- ##
-
-
- #iterator#
-
-
-
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #ev_list#
-
-
- #EventList#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
- #idx#
-
-
- #iterator#
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #T#
-
-
-
-
-
-
- #<<friend>>#
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -18110,20 +17466,20 @@
-
+
-
+
-
-
+
+
@@ -18148,10 +17504,10 @@
-
+
-
+
@@ -18261,7 +17617,7 @@
-
+
@@ -18474,7 +17830,7 @@
-
+
@@ -18486,8 +17842,8 @@
-
-
+
+
@@ -18511,11 +17867,11 @@
##
-
-
+
+
-
+
@@ -19031,7 +18387,7 @@
-
+
@@ -19043,8 +18399,8 @@
-
-
+
+
@@ -19068,11 +18424,11 @@
##
-
-
+
+
-
+
@@ -19285,7 +18641,7 @@
-
+
@@ -19297,8 +18653,8 @@
-
-
+
+
@@ -19322,11 +18678,11 @@
##
-
-
+
+
-
+
@@ -19539,7 +18895,7 @@
-
+
@@ -19551,8 +18907,8 @@
-
-
+
+
@@ -19576,11 +18932,11 @@
##
-
-
+
+
-
+
@@ -19894,7 +19250,7 @@
-
+
@@ -19906,8 +19262,8 @@
-
-
+
+
@@ -19931,11 +19287,11 @@
##
-
-
+
+
-
+
@@ -20415,7 +19771,7 @@
-
+
@@ -20427,8 +19783,8 @@
-
-
+
+
@@ -20453,10 +19809,10 @@
-
+
-
+
@@ -20669,7 +20025,7 @@
-
+
@@ -20681,8 +20037,8 @@
-
-
+
+
@@ -20706,11 +20062,11 @@
##
-
-
+
+
-
+
@@ -21054,7 +20410,7 @@
-
+
@@ -21066,8 +20422,8 @@
-
-
+
+
@@ -21091,11 +20447,11 @@
##
-
-
+
+
-
+
@@ -21308,7 +20664,7 @@
-
+
@@ -21320,8 +20676,8 @@
-
-
+
+
@@ -21345,11 +20701,11 @@
##
-
-
+
+
-
+
@@ -21459,20 +20815,20 @@
-
+
-
+
-
+
-
-
-
+
+
+
@@ -21497,7 +20853,82 @@
-
+
+
+
+
+
+ ##
+
+
+
+
+
+
+
+
+
+
+
+ ##
+
+
+ ##
+
+
+
+
+
+
+
+
+ ##
+
+
+ ##
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/class-diagram.png b/doc/class-diagram.png
index d3e84ec5..41213dda 100644
Binary files a/doc/class-diagram.png and b/doc/class-diagram.png differ