diff --git a/source/main.cpp b/source/main.cpp
index b9bbbb47aab16499238583720fb56e496bfb17c6..0c72d35174d388cf190e0fafb84c625fad7b5da0 100755
--- a/source/main.cpp
+++ b/source/main.cpp
@@ -19,17 +19,30 @@
 
 MicroBit micro_bit;
 
-void event_handler(MicroBitEvent) {
-    micro_bit.display.printAsync("A", 200);
-}
 
+class EventThingy {
+public:
+    void event_handler_a(MicroBitEvent) {
+        micro_bit.display.image.setPixelValue(0, 2, 1);
+    }
+
+    void event_handler_b(MicroBitEvent) {
+        micro_bit.display.image.setPixelValue(4, 2, 1);
+    }
+};
+
+EventThingy eventer;
 
 int main() {
     // Initialise the micro:bit runtime.
     micro_bit.init();
 
     micro_bit.messageBus.listen(
-        MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, event_handler
+        MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, &eventer, &EventThingy::event_handler_a
+    );
+
+    micro_bit.messageBus.listen(
+        MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, &eventer, &EventThingy::event_handler_b
     );
 
     while (true) {