<template>
   <router-view />
-  <Container id="action">
+  <Container id="action-container">
     <router-view name="action" />
   </Container>
 </template>
   background-color: white;
 }
 
-#action {
+#action-container {
   min-width: max-content;
   display: flex;
   flex-direction: column;
 
     return UIClient.instance
   }
 
-  public registerWSonOpenListener(listener: (event: Event) => void) {
-    this.ws.addEventListener('open', listener)
+  public registerWSEventListener<K extends keyof WebSocketEventMap>(
+    event: K,
+    listener: (event: WebSocketEventMap[K]) => void
+  ) {
+    this.ws.addEventListener(event, listener)
   }
 
   public async startSimulator(): Promise<ResponsePayload> {
 
     // TODO: add code for UI notifications or other error handling logic
   }
   app.config.globalProperties.$uiClient = UIClient.getInstance(config)
-  app.config.globalProperties.$uiClient.registerWSonOpenListener(() => {
+  app.config.globalProperties.$uiClient.registerWSEventListener('open', () => {
     app.config.globalProperties.$uiClient
       .listChargingStations()
       .then((response: ResponsePayload) => {
 
 <template>
-  <Container id="charging-stations">
+  <Container id="charging-stations-container">
     <Container id="buttons-container">
       <Button id="simulator-button" @click="startSimulator()">Start Simulator</Button>
       <Button id="simulator-button" @click="stopSimulator()">Stop Simulator</Button>
 </script>
 
 <style>
-#charging-stations {
+#charging-stations-container {
   height: fit-content;
   width: 100%;
   display: flex;