 
 MCP_CAN CAN(9);
 
-void setup(){
+void setup()
+{
     Serial.begin(115200);
+    setup_CAN_Bus_Filters();
+}
 
-START_INIT:
-    if(CAN_OK != CAN.begin(CAN_500KBPS)){
+void loop()
+{
+  process_CAN_Messages();
+}
+
+void setup_CAN_Bus_Filters()
+{
+    while(CAN_OK != CAN.begin(CAN_500KBPS)){
         Serial.println("Failed to initialize CAN");
         Serial.println("Retrying..");
         delay(100);
-        goto START_INIT;
     }
-
+    
     Serial.println("Starting to initialize CAN");
    
     //Set filter masks

    CAN.init_Filt(5, 0, MSG_ID_ABS_Control_Module_2);    
    CAN.init_Filt(6, 0, MSG_ID_Instrument_Cluster);
    CAN.init_Filt(7, 0, MSG_ID_Instrument_Cluster_2);    
    Serial.println("CAN Initialized");
}


void loop(){
    unsigned char length = 0;
    unsigned char data[8];


        }
     }
}

void handle_MSG_ID_Instrument_Cluster(unsigned char *data, unsigned char length)
{
    Serial.print("Instrument Cluster: ");
}

void handle_MSG_ID_Instrument_Cluster_2(unsigned char *data, unsigned char length)
