diff --git a/sam3s_example/simtrace/phone.c b/sam3s_example/simtrace/phone.c
index 0d077fb..d08be1b 100644
--- a/sam3s_example/simtrace/phone.c
+++ b/sam3s_example/simtrace/phone.c
@@ -214,6 +214,13 @@
 
     USART_SetTransmitterEnabled(USART_PHONE, 1);
     USART_SetReceiverEnabled(USART_PHONE, 1);
+
+    /*  Configure ISO7816 driver */
+    // FIXME:    PIO_Configure(pPwr, PIO_LISTSIZE( pPwr ));
+
+
+
+
 // FIXME: Or do I need to call VBUS_CONFIGURE() here instead, which will call USBD_Connect() later?
 //    USBD_Connect();
 // FIXME: USB clock? USB PMC?
@@ -232,3 +239,12 @@
 */
 
 }
+
+void Phone_run( void )
+{
+    // FIXME: Function Phone_run not implemented yet
+
+    /* Send and receive chars */
+    // ISO7816_GetChar(&rcv_char);
+    // ISO7816_SendChar(char_to_send);
+}
diff --git a/sam3s_example/simtrace/simtrace_main.c b/sam3s_example/simtrace/simtrace_main.c
index dbc74e5..a4f1763 100644
--- a/sam3s_example/simtrace/simtrace_main.c
+++ b/sam3s_example/simtrace/simtrace_main.c
@@ -8,6 +8,21 @@
 /*------------------------------------------------------------------------------
  *         Internal variables
  *------------------------------------------------------------------------------*/
+typedef struct {
+    void (* init) ( void );
+    void (* run) ( void );
+} conf_func;
+
+conf_func config_func_ptrs[] = {
+    {Sniffer_Init, Sniffer_run},  /*  CFG_NUM_SNIFF */
+    {Phone_Master_Init, Phone_run},  /* CFG_NUM_PHONE */
+    {MITM_init, MITM_run},  /* CFG_NUM_MITM */
+};
+
+
+/*------------------------------------------------------------------------------
+ *         Internal variables
+ *------------------------------------------------------------------------------*/
 uint8_t simtrace_config = 0;
 uint8_t conf_changed = 1;
 
@@ -55,54 +70,13 @@
 //            TC_Start(TC0, 0);
         }    
     
-
 /*  FIXME: Or should we move the while loop into every case, and break out
     in case the config changes? */
-        switch(simtrace_config) {
-            case CFG_NUM_SNIFF:
-                if (conf_changed) {
-                    Sniffer_Init();
-                    printf("****+ Changed to CFG_NUM_SNIFF\n\r");
-                    conf_changed = 0;
-                } else {
-                    if (rcvdChar != 0) {
-                        TRACE_DEBUG("Rcvd char _%x_ \n\r", rcvdChar);
-                        rcvdChar = 0;
-                    }
-                }
-                break;
-/*            case CONF_CCID_READER:
-                if (conf_changed) {
-                    // Init
-                    conf_changed = 0;
-                } else {
-                    // Receive char
-                }
-                break;  */
-            case CFG_NUM_PHONE:
-                if (conf_changed) {
-                    Phone_Master_Init();
-                    printf("****+ Changed to CFG_NUM_PHONE\n\r");
-                    conf_changed = 0;
-                    /*  Configure ISO7816 driver */
-                    // FIXME:    PIO_Configure(pPwr, PIO_LISTSIZE( pPwr ));
-                } else {
-                    /* Send and receive chars */
-                    // ISO7816_GetChar(&rcv_char);
-                    // ISO7816_SendChar(char_to_send);
-                }
-                break;
-            case CFG_NUM_MITM:
-                if (conf_changed) {
-                    printf("****+ Changed to CFG_NUM_MITM\n\r");
-                    // Init
-                    conf_changed = 0;
-                } else {
-                    // Receive char
-                }
-                break;
-            default:
-                break;
+        if (conf_changed) {
+            config_func_ptrs[simtrace_config-1].init();
+            conf_changed = 0;
+        } else {
+            config_func_ptrs[simtrace_config-1].run();
         }
     }
 }
diff --git a/sam3s_example/simtrace/sniffer.c b/sam3s_example/simtrace/sniffer.c
index c83b95e..4654526 100644
--- a/sam3s_example/simtrace/sniffer.c
+++ b/sam3s_example/simtrace/sniffer.c
@@ -77,3 +77,11 @@
 
     USART_SetReceiverEnabled(USART_PHONE, 1);
 }
+
+void Sniffer_run( void )
+{
+    if (rcvdChar != 0) {
+        TRACE_DEBUG("Rcvd char _%x_ \n\r", rcvdChar);
+        rcvdChar = 0;
+    }
+}
