diff --git a/apps/canvas/front/src/components/icon.tsx b/apps/canvas/front/src/components/icon.tsx
index fd01746..c99e4f5 100644
--- a/apps/canvas/front/src/components/icon.tsx
+++ b/apps/canvas/front/src/components/icon.tsx
@@ -1,16 +1,22 @@
 import { NodeType } from "@/lib/state";
-import { MdStorage } from "react-icons/md";
-import { SiGithub, SiIngress, SiJunipernetworks, SiMongodb, SiPostgresql, SiServerfault } from "react-icons/si";
+import { ReactElement } from "react";
+import { SiGithub, SiMongodb, SiPostgresql } from "react-icons/si";
+import { GrServices } from "react-icons/gr";
+import { GoFileDirectoryFill } from "react-icons/go";
+import { TbWorldWww } from "react-icons/tb";
+import { PiNetwork } from "react-icons/pi";
+import { AiOutlineGlobal } from "react-icons/ai";
 
-export function Icon(type: NodeType | undefined): React.ReactElement {
+export function Icon(type: NodeType | undefined): ReactElement {
     switch (type) {
-        case "app": return (<SiServerfault />);
+        case "app": return (<GrServices />);
         case "github": return (<SiGithub />);
-        case "gateway-https": return (<SiIngress />);
-        case "gateway-tcp": return (<SiJunipernetworks />);
+        case "gateway-https": return (<TbWorldWww />);
+        case "gateway-tcp": return (<PiNetwork />);
         case "mongodb": return (<SiMongodb />);
         case "postgresql": return (<SiPostgresql />);
-        case "volume": return (<MdStorage />);
-        case undefined: throw new Error("MUST NOT REACH!");
+        case "volume": return (<GoFileDirectoryFill />);
+        case "network": return (<AiOutlineGlobal />);
+        default: throw new Error(`MUST NOT REACH! ${type}`);
     }
 }
\ No newline at end of file
