diff --git a/old_examples/tests/catch/example-test-fsm.cpp b/old_examples/tests/catch/example-test-fsm.cpp
index e557f212ecd513b791d9528a0edcbeab8d5f878d..9c69e2b3000ca19754a076f3c52b379bb12e66b1 100644
--- a/old_examples/tests/catch/example-test-fsm.cpp
+++ b/old_examples/tests/catch/example-test-fsm.cpp
@@ -131,7 +131,7 @@ public:
     // Start the thread in the constructor
     FSMTestFixture()
     {
-        sEventBroker.start();
+        EventBroker::getInstance().start();
         fsm.start();
     }
     // Stop the thread in the destructor
@@ -168,7 +168,7 @@ TEST_CASE_METHOD(FSMTestFixture, "Testing async transitions")
 
         SECTION("S3 --> S4 if EV_B. Delayed event should be removed")
         {
-            EventCounter counter{*sEventBroker};
+            EventCounter counter{*EventBroker::getInstance()};
 
             // Post EV_B before EV_D fires. should move to S4 and remove EV_D
             // from the delayed events
diff --git a/old_examples/tests/catch/example-test-fsm.h b/old_examples/tests/catch/example-test-fsm.h
index 3aa648ec901654b0a6dbfaf836981f1d66e72e81..03f46222db911c7304992b33a1ee525771567b5e 100644
--- a/old_examples/tests/catch/example-test-fsm.h
+++ b/old_examples/tests/catch/example-test-fsm.h
@@ -39,8 +39,8 @@
  */
 enum ExampleEvents : uint8_t
 {
-    EV_A = EV_FIRST_SIGNAL,  // The first event must always have value
-                             // EV_FIRST_SIGNAL
+    EV_A = EV_FIRST_CUSTOM,  // The first event must always have value
+                             // EV_FIRST_CUSTOM
     EV_B,  // Values for the following event can be manually specified or
            // assigned automatically
     EV_C,
@@ -110,10 +110,10 @@ public:
     FSMExample() : FSM(&FSMExample::state_S1), v(0)
     {
         // Subscribe for events posted on TOPIC_T1
-        sEventBroker.subscribe(this, TOPIC_T1);
+        EventBroker::getInstance().subscribe(this, TOPIC_T1);
     }
 
-    ~FSMExample() { sEventBroker.unsubscribe(this); }
+    ~FSMExample() { EventBroker::getInstance().unsubscribe(this); }
 
     /*
      * State function definitions.
@@ -207,8 +207,8 @@ public:
                 v = 1;
 
                 // Post EV_D to itself in 1 seconds
-                delayed_ev_id =
-                    sEventBroker.postDelayed(Event{EV_D}, TOPIC_T1, 1000);
+                delayed_ev_id = EventBroker::getInstance().postDelayed(
+                    Event{EV_D}, TOPIC_T1, 1000);
 
                 break;
             }
@@ -219,7 +219,7 @@ public:
                 // don't remove a delayed event. This is an error! Uncomment to
                 // fix, see the wiki for further information !!!
 
-                // sEventBroker.removeDelayed(delayed_ev_id);
+                // EventBroker::getInstance().removeDelayed(delayed_ev_id);
                 break;
             }
             case EV_B:
diff --git a/scripts/generators/eventgen.py b/scripts/generators/eventgen.py
index dedf167d77171b073d56623f605f9139855b4010..f5014d9517d50e1ee6b3db965868af308db73ffc 100755
--- a/scripts/generators/eventgen.py
+++ b/scripts/generators/eventgen.py
@@ -93,7 +93,7 @@ def generate_events_h(events, date):
 
     # Prepare the event list
     enum_event_list = list(events)
-    enum_event_list[0] += ' = EV_FIRST_SIGNAL'
+    enum_event_list[0] += ' = EV_FIRST_CUSTOM'
     enum_event_list = '\n'.join(
         [' '*4 + event + ',' for event in enum_event_list])
     vector_event_list = '\n'.join([' '*4 + event + ',' for event in events])
diff --git a/scripts/generators/fsmgen.py b/scripts/generators/fsmgen.py
index b3c6bab216cb027497e6c5c3fd4129f91b583ba7..5288d3618a19e29653f97d4a7ce26e8bc5bc649e 100755
--- a/scripts/generators/fsmgen.py
+++ b/scripts/generators/fsmgen.py
@@ -59,7 +59,7 @@ STATE_FUNCTION_CASE_TEMPLATE = ' '*8 + 'case {event}:\n' + \
     ' '*12 + 'break;\n' + \
     ' '*8 + '}}'
 UTILITY_FUNCTION_DECLARATION_TEMPLATE = 'void {function_name}();'
-TOPICS_SUBSCIPTION_TEMPLATE = ' '*4 + 'sEventBroker.subscribe(this, {topic});'
+TOPICS_SUBSCIPTION_TEMPLATE = ' '*4 + 'EventBroker::getInstance().subscribe(this, {topic});'
 UTILITY_FUNCTION_DEFINITION_TEMPLATE = 'void {state_machine_name}Controller::{function_name}()\n{{\n    // ...\n}}'
 STATE_FUNCTION_CASE_TRANSITION_TO_TARGET_TEMPLATE = 'transition(&{state_machine_name}Controller::state_{state_name});'
 TEST_CASE_METHOD_TEMPLATE = 'TEST_CASE_METHOD({state_machine_name}ControllerFixture, "Testing transitions from {state}")\n' + \
diff --git a/src/shared/events/Event.h b/src/shared/events/Event.h
index d35c6ab219a2d5c2c7e0060e75eece7ea2eeb075..c38ec3ef83a50bbbe86428bbb8f7d9e89a363427 100644
--- a/src/shared/events/Event.h
+++ b/src/shared/events/Event.h
@@ -27,38 +27,27 @@
 namespace Boardcore
 {
 
-enum EventSignal : uint8_t
+typedef uint8_t Event;
+
+enum BasicEvent : Event
 {
     EV_ENTRY        = 0,
     EV_EXIT         = 1,
     EV_EMPTY        = 2,
     EV_INIT         = 3,
-    EV_FIRST_SIGNAL = 4
+    EV_FIRST_CUSTOM = 4
 };
 
 /**
- * 	Example definiton of custom signals:
-
-        enum CustomSignal : uint8_t
-        {
-                SIG_ONE = SG_FIRST_SIGNAL,
-                SIG_TWO,
-                SIG_THREE,
-                SIG_FOUR
-        };
-
+ * Example definition of custom events:
+ *
+ * enum CustomEvent : Event
+ * {
+ *     EV_ONE = EV_FIRST_CUSTOM,
+ *     EV_TWO,
+ *     EV_THREE.
+ *     EV_FOUR
+ * }
  */
 
-struct Event
-{
-    uint8_t code;
-};
-
-/* Example of extended Event structure
-
-        struct ExtendedEvent : public Event{
-                uint32_t customMember;
-        };
-*/
-
 }  // namespace Boardcore
diff --git a/src/shared/events/EventBroker.cpp b/src/shared/events/EventBroker.cpp
index 019aefc8e0464bd9ab3b88e4e3cb27cf329e1d0c..543005be8a30c7ba8fc97d838d5a4aaa910b77e6 100644
--- a/src/shared/events/EventBroker.cpp
+++ b/src/shared/events/EventBroker.cpp
@@ -33,7 +33,7 @@ EventBroker::EventBroker() {}
 void EventBroker::post(const Event& ev, uint8_t topic)
 {
 #ifdef TRACE_EVENTS
-    LOG_DEBUG(logger, "Event: {}, Topic: {}", ev.code, topic);
+    LOG_DEBUG(logger, "Event: {}, Topic: {}", ev, topic);
 #endif
 
     Lock<FastMutex> lock(mtxSubscribers);
diff --git a/src/shared/events/EventBroker.h b/src/shared/events/EventBroker.h
index 27222a5a486524adefff64905e649689a422cda4..d769bca420e4bcc06773ec87147267116ca46ee2 100644
--- a/src/shared/events/EventBroker.h
+++ b/src/shared/events/EventBroker.h
@@ -62,8 +62,6 @@ class EventBroker : public Singleton<EventBroker>, public ActiveObject
 public:
     /**
      * Posts an event to the specified topic.
-     * @param ev
-     * @param topic
      */
     void post(const Event& ev, uint8_t topic);
 
@@ -190,5 +188,3 @@ private:
 };
 
 }  // namespace Boardcore
-
-#define sEventBroker Boardcore::Singleton<Boardcore::EventBroker>::getInstance()
diff --git a/src/shared/events/FSM.h b/src/shared/events/FSM.h
index 0f32e4c973f5334264ee67cae30937dbff064fe4..f4ed570643450d16616eafcd84c575b02b6de859 100644
--- a/src/shared/events/FSM.h
+++ b/src/shared/events/FSM.h
@@ -63,8 +63,8 @@ FSM<T>::FSM(void (T::*initialState)(const Event&), unsigned int stacksize,
             miosix::Priority priority)
     : EventHandler(stacksize, priority)
 {
-    state             = initialState;
-    specialEvent.code = EV_ENTRY;
+    state        = initialState;
+    specialEvent = EV_ENTRY;
     postEvent(specialEvent);
 }
 
@@ -74,10 +74,10 @@ FSM<T>::~FSM(){};
 template <class T>
 void FSM<T>::transition(void (T::*nextState)(const Event&))
 {
-    specialEvent.code = EV_EXIT;
+    specialEvent = EV_EXIT;
     (static_cast<T*>(this)->*state)(specialEvent);
-    state             = nextState;
-    specialEvent.code = EV_ENTRY;
+    state        = nextState;
+    specialEvent = EV_ENTRY;
     (static_cast<T*>(this)->*state)(specialEvent);
 }
 
diff --git a/src/shared/events/utils/EventCounter.h b/src/shared/events/utils/EventCounter.h
index 27708720c00ab3a8987dfd98c0c70e6c9c568460..9f0914d26e17c0fca31960c706320deb5c5eebed 100644
--- a/src/shared/events/utils/EventCounter.h
+++ b/src/shared/events/utils/EventCounter.h
@@ -60,27 +60,22 @@ public:
     {
         Lock<FastMutex> l(mutex);
 
-        ++mapCounter[ev.code];
+        ++mapCounter[ev];
         ++totalCount;
 
-        lastEvent = ev.code;
+        lastEvent = ev;
     }
 
     /**
-     * @brief Returns the number of times a specific event has been received
+     * @brief Returns the number of times a specific event has been received.
      */
-    unsigned int getCount(const Event& ev) { return getCount(ev.code); }
-
-    /**
-     * @brief Returns the number of times a specific event has been received
-     */
-    unsigned int getCount(uint8_t evSig)
+    unsigned int getCount(const Event& ev)
     {
         Lock<FastMutex> l(mutex);
 
-        if (mapCounter.count(evSig) == 1)
+        if (mapCounter.count(ev) == 1)
         {
-            return mapCounter.at(evSig);
+            return mapCounter.at(ev);
         }
 
         return 0;
@@ -92,7 +87,7 @@ public:
     unsigned int getTotalCount() { return totalCount; }
 
     /**
-     * @brief Returns the signature of the last event received (ev.code)
+     * @brief Returns the signature of the last event received (ev)
      */
     uint8_t getLastEvent() { return lastEvent; }
 
diff --git a/src/shared/events/utils/EventInjector.h b/src/shared/events/utils/EventInjector.h
index d57c820f137c6385fb6ce75bbb7ede6a1a89692d..c9df410e213085153a1e6146e5b123d2fd89dcbd 100644
--- a/src/shared/events/utils/EventInjector.h
+++ b/src/shared/events/utils/EventInjector.h
@@ -57,7 +57,7 @@ protected:
             getline(cin, temp);
             stringstream(temp) >> ev >> topic;
 
-            sEventBroker.post({(uint8_t)ev}, topic);
+            EventBroker::getInstance().post({(uint8_t)ev}, topic);
         }
     }
 };
diff --git a/src/shared/events/utils/EventSniffer.h b/src/shared/events/utils/EventSniffer.h
index 19dff058ca32d00d0d6edf2c0b1755f62e317b69..67785774247ec3f5e6c17f5b2194365766d4e685 100644
--- a/src/shared/events/utils/EventSniffer.h
+++ b/src/shared/events/utils/EventSniffer.h
@@ -94,10 +94,7 @@ private:
             parent.broker.subscribe(this, topic);
         }
 
-        void postEvent(const Event& ev)
-        {
-            parent.onEventReceived(ev.code, topic);
-        }
+        void postEvent(const Event& ev) { parent.onEventReceived(ev, topic); }
 
         ~Sniffer() { parent.broker.unsubscribe(this); }
 
diff --git a/src/shared/utils/TestUtils/TestHelper.h b/src/shared/utils/TestUtils/TestHelper.h
index 660838fc04fcf103dd581f828e80b99443e6fe23..2e7592f4273969efca7d3ea6a4d38c70b7d02695 100644
--- a/src/shared/utils/TestUtils/TestHelper.h
+++ b/src/shared/utils/TestUtils/TestHelper.h
@@ -98,7 +98,7 @@ bool testFSMTransition(FSM_type& fsm, const Event& ev,
 template <class FSM_type>
 bool testFSMAsyncTransition(FSM_type& fsm, const Event& ev, uint8_t topic,
                             void (FSM_type::*expectedState)(const Event&),
-                            EventBroker& broker = sEventBroker)
+                            EventBroker& broker = EventBroker::getInstance())
 {
     broker.post(ev, topic);
     // Wait for the event to be handled
@@ -154,7 +154,7 @@ bool testHSMTransition(HSM_type& hsm, const Event& ev,
 template <class HSM_type>
 bool testHSMAsyncTransition(HSM_type& hsm, const Event& ev, uint8_t topic,
                             State (HSM_type::*expectedState)(const Event&),
-                            EventBroker& broker = sEventBroker)
+                            EventBroker& broker = EventBroker::getInstance())
 {
     broker.post(ev, topic);
     // Wait for the event to be handled
@@ -183,7 +183,7 @@ bool testHSMAsyncTransition(HSM_type& hsm, const Event& ev, uint8_t topic,
  */
 bool expectEvent(uint8_t eventId, uint8_t topic, long long when,
                  long long uncertainty = EVENT_TIMING_UNCERTAINTY,
-                 EventBroker& broker   = sEventBroker);
+                 EventBroker& broker   = EventBroker::getInstance());
 
 /**
  * @brief Waits until the specified event is received or a timeout expires
@@ -197,6 +197,6 @@ bool expectEvent(uint8_t eventId, uint8_t topic, long long when,
  *         false    if the timeout has expired
  */
 bool waitForEvent(uint8_t event, uint8_t topic, long long timeout = 0,
-                  EventBroker& broker = sEventBroker);
+                  EventBroker& broker = EventBroker::getInstance());
 
 }  // namespace Boardcore
diff --git a/src/tests/catch/test-eventbroker.cpp b/src/tests/catch/test-eventbroker.cpp
index 04475591c3973eed8e1aa6a7d6d97674b4aa8e2b..18a9eb65c348d484a29c2c7823be366e4cc042d0 100644
--- a/src/tests/catch/test-eventbroker.cpp
+++ b/src/tests/catch/test-eventbroker.cpp
@@ -75,26 +75,26 @@ TEST_CASE("EventBroker - Posts to different topics")
 
     SECTION("Post event on TOPIC_1, only sub1 should receive it")
     {
-        ev.code = EV_A;
+        ev = EV_A;
         broker.post(ev, TOPIC_1);
         REQUIRE(sub1.getTotalCount() == 1);
-        REQUIRE(sub1.getLastEvent() == ev.code);
+        REQUIRE(sub1.getLastEvent() == ev);
         REQUIRE(sub2.getTotalCount() == 0);
     }
 
     SECTION("Post event on TOPIC_2, both sub1 and sub2 should receive it")
     {
-        ev.code = EV_B;
+        ev = EV_B;
         broker.post(ev, TOPIC_2);
         REQUIRE(sub1.getTotalCount() == 1);
         REQUIRE(sub2.getTotalCount() == 1);
-        REQUIRE(sub1.getLastEvent() == ev.code);
-        REQUIRE(sub2.getLastEvent() == ev.code);
+        REQUIRE(sub1.getLastEvent() == ev);
+        REQUIRE(sub2.getLastEvent() == ev);
     }
 
     SECTION("Post event on TOPIC_3, no one should receive it")
     {
-        ev.code = EV_C;
+        ev = EV_C;
         broker.post(ev, TOPIC_3);
 
         REQUIRE(sub1.getTotalCount() == 0);
diff --git a/src/tests/events/fsm/test-fsm.cpp b/src/tests/events/fsm/test-fsm.cpp
index 7c119cc16ddddbd6a58914e4f8f422a59a60ac09..b6f2dc4f7e3a8dfd43f198962d74abe988ee9c60 100644
--- a/src/tests/events/fsm/test-fsm.cpp
+++ b/src/tests/events/fsm/test-fsm.cpp
@@ -33,17 +33,18 @@ int main()
 {
     FSMExample fsm;
 
-    sEventBroker.start();  // Start broker thread
-    fsm.start();           // Start FSM thread
+    EventBroker::getInstance().start();  // Start broker thread
+    fsm.start();                         // Start FSM thread
 
     // State machine starts in state S1. Post EV_A to move to S2
-    sEventBroker.post(Event{EV_A}, TOPIC_T1);
+    EventBroker::getInstance().post(Event{EV_A}, TOPIC_T1);
 
     // FSM now in State S2
-    sEventBroker.post(Event{EV_E},
-                      TOPIC_T1);  // This makes the FSM print hello world
+    EventBroker::getInstance().post(
+        Event{EV_E},
+        TOPIC_T1);  // This makes the FSM print hello world
 
-    sEventBroker.post(Event{EV_C}, TOPIC_T1);  // Transition to S3
+    EventBroker::getInstance().post(Event{EV_C}, TOPIC_T1);  // Transition to S3
 
     printf("Waiting for the FSM to transition to S1\n");
     Thread::sleep(1100);
@@ -53,7 +54,7 @@ int main()
 
     // Since previously we've been in state S3, now v == 1 and EV_A will make
     // the FSM transition to S4 instead of S1
-    sEventBroker.post(Event{EV_A}, TOPIC_T1);
+    EventBroker::getInstance().post(Event{EV_A}, TOPIC_T1);
 
     // Now the state machine is in state S4
 
@@ -68,5 +69,5 @@ int main()
     // Stop the threds, even though we will never reach this point, but just for
     // correctness ;)
     fsm.stop();
-    sEventBroker.stop();
+    EventBroker::getInstance().stop();
 }
diff --git a/src/tests/events/fsm/test-fsm.h b/src/tests/events/fsm/test-fsm.h
index 7b16d6703e9cc8c6910dd012b2377d5461d7063c..f603cdfec09f72e09864f4dbeaf43e08264c9b6d 100644
--- a/src/tests/events/fsm/test-fsm.h
+++ b/src/tests/events/fsm/test-fsm.h
@@ -40,8 +40,8 @@ namespace Boardcore
  */
 enum ExampleEvents : uint8_t
 {
-    EV_A = EV_FIRST_SIGNAL,  // The first event must always have
-                             // value EV_FIRST_SIGNAL
+    EV_A = EV_FIRST_CUSTOM,  // The first event must always have
+                             // value EV_FIRST_CUSTOM
     EV_B,  // Values for the following event can be manually specified or
            // assigned automatically
     EV_C,
@@ -64,7 +64,7 @@ enum ExampleTopics : uint8_t
  */
 void traceState(uint8_t state, const Event& ev)
 {
-    switch (ev.code)
+    switch (ev)
     {
         case EV_ENTRY:
         {
@@ -78,7 +78,7 @@ void traceState(uint8_t state, const Event& ev)
         }
         default:
         {
-            printf("(S%d) Received event %d\n", state, ev.code);
+            printf("(S%d) Received event %d\n", state, ev);
             break;
         }
     }
@@ -110,10 +110,10 @@ public:
     FSMExample() : FSM(&FSMExample::state_S1), v(0)
     {
         // Subscribe for events posted on TOPIC_T1
-        sEventBroker.subscribe(this, TOPIC_T1);
+        EventBroker::getInstance().subscribe(this, TOPIC_T1);
     }
 
-    ~FSMExample() { sEventBroker.unsubscribe(this); }
+    ~FSMExample() { EventBroker::getInstance().unsubscribe(this); }
 
 private:
     /*
@@ -129,7 +129,7 @@ private:
         // state machine on the terminal.
         traceState(STATE_S1, ev);
 
-        switch (ev.code)
+        switch (ev)
         {
             // It's always good to add braces to every single case statement, to
             // avoid problems
@@ -169,7 +169,7 @@ private:
     {
         traceState(STATE_S2, ev);
 
-        switch (ev.code)
+        switch (ev)
         {
             case EV_ENTRY:
             {
@@ -200,7 +200,7 @@ private:
     {
         traceState(STATE_S3, ev);
 
-        switch (ev.code)
+        switch (ev)
         {
             case EV_ENTRY:
             {
@@ -208,15 +208,15 @@ private:
                 v = 1;
 
                 // Post EV_D to itself in 1 seconds
-                delayed_ev_id =
-                    sEventBroker.postDelayed<1000>(Event{EV_D}, TOPIC_T1);
+                delayed_ev_id = EventBroker::getInstance().postDelayed<1000>(
+                    Event{EV_D}, TOPIC_T1);
 
                 break;
             }
             case EV_EXIT:
             {
                 // Remove the delayed event in case it has not fired yet
-                sEventBroker.removeDelayed(delayed_ev_id);
+                EventBroker::getInstance().removeDelayed(delayed_ev_id);
                 break;
             }
             case EV_B:
@@ -243,7 +243,7 @@ private:
     {
         traceState(STATE_S4, ev);
 
-        switch (ev.code)
+        switch (ev)
         {
             case EV_ENTRY:
             {
diff --git a/src/tests/test-eventinjector.cpp b/src/tests/test-eventinjector.cpp
index 424637b10027b701572790948541c489e6071e10..f36f11ba2a9bbfb3d0524d4369e69df63849fddc 100644
--- a/src/tests/test-eventinjector.cpp
+++ b/src/tests/test-eventinjector.cpp
@@ -37,7 +37,7 @@ int main()
     EventInjector injector;
     injector.start();
 
-    EventCounter counter(sEventBroker);
+    EventCounter counter(EventBroker::getInstance());
     counter.subscribe({topic});
 
     for (;;)
diff --git a/src/tests/test-hsm.cpp b/src/tests/test-hsm.cpp
index c23c9d7ef15384575ee2231e2e2d2f3cabe79b56..c33ba46ba6bffbb54c97b8682b79665d4b3275ef 100644
--- a/src/tests/test-hsm.cpp
+++ b/src/tests/test-hsm.cpp
@@ -44,7 +44,7 @@ using namespace miosix;
     {                                                              \
         cout << "------------------------------" << endl;          \
         cout << "Triggering signal " << #SIGNAL << endl;           \
-        sEventBroker.post({SIGNAL}, TOPIC_TEST);                   \
+        EventBroker::getInstance().post({SIGNAL}, TOPIC_TEST);     \
         Thread::sleep(400);                                        \
         testValue = HSM.testState(STATE);                          \
         cout << "Check State " << #STATE << " "                    \
@@ -54,7 +54,7 @@ using namespace miosix;
 
 enum TestEvents : uint8_t
 {
-    EV_A = EV_FIRST_SIGNAL,
+    EV_A = EV_FIRST_CUSTOM,
     EV_B,
     EV_C,
     EV_D,
@@ -84,14 +84,13 @@ public:
     bool foo;
 };
 
-#define DEBUG_PRINT \
-    cout << __func__ << ": event received:" << (int)e.code << endl
+#define DEBUG_PRINT cout << __func__ << ": event received:" << (int)e << endl
 
 using namespace std;
 
 HSMUTTest::HSMUTTest() : HSM(&HSMUTTest::state_initialization)
 {
-    sEventBroker.subscribe(this, TOPIC_TEST);
+    EventBroker::getInstance().subscribe(this, TOPIC_TEST);
 }
 
 State HSMUTTest::state_initialization(const Event& e)
@@ -105,7 +104,7 @@ State HSMUTTest::state_S(const Event& e)
 {
     State retState = HANDLED;
     DEBUG_PRINT;
-    switch (e.code)
+    switch (e)
     {
         case EV_ENTRY:
             break;
@@ -138,7 +137,7 @@ State HSMUTTest::state_S1(const Event& e)
 {
     State retState = HANDLED;
     DEBUG_PRINT;
-    switch (e.code)
+    switch (e)
     {
         case EV_ENTRY:
             break;
@@ -184,7 +183,7 @@ State HSMUTTest::state_S11(const Event& e)
 {
     State retState = HANDLED;
     DEBUG_PRINT;
-    switch (e.code)
+    switch (e)
     {
         case EV_ENTRY:
             break;
@@ -220,7 +219,7 @@ State HSMUTTest::state_S2(const Event& e)
 {
     State retState = HANDLED;
     DEBUG_PRINT;
-    switch (e.code)
+    switch (e)
     {
         case EV_ENTRY:
             break;
@@ -256,7 +255,7 @@ State HSMUTTest::state_S21(const Event& e)
 {
     State retState = HANDLED;
     DEBUG_PRINT;
-    switch (e.code)
+    switch (e)
     {
         case EV_ENTRY:
             break;
@@ -281,7 +280,7 @@ State HSMUTTest::state_S211(const Event& e)
 {
     State retState = HANDLED;
     DEBUG_PRINT;
-    switch (e.code)
+    switch (e)
     {
         case EV_ENTRY:
             break;
@@ -309,7 +308,7 @@ State HSMUTTest::state_S211(const Event& e)
 int main()
 {
 
-    sEventBroker.start();
+    EventBroker::getInstance().start();
 
     HSMUTTest& hsm = HSMUTTest::getInstance();
     hsm.start();