diff --git a/app/api/bridges.go b/app/api/bridges.go
new file mode 100644
index 0000000..778f64e
--- /dev/null
+++ b/app/api/bridges.go
@@ -0,0 +1 @@
+package api
diff --git a/app/services/publish.go b/app/services/publish.go
new file mode 100644
index 0000000..5e568ea
--- /dev/null
+++ b/app/services/publish.go
@@ -0,0 +1 @@
+package services
diff --git a/internal/mysql/bridgerepo.go b/internal/mysql/bridgerepo.go
new file mode 100644
index 0000000..b084302
--- /dev/null
+++ b/internal/mysql/bridgerepo.go
@@ -0,0 +1 @@
+package mysql
diff --git a/internal/mysql/util.go b/internal/mysql/util.go
new file mode 100644
index 0000000..b084302
--- /dev/null
+++ b/internal/mysql/util.go
@@ -0,0 +1 @@
+package mysql
diff --git a/scripts/20210522140146_device.sql b/scripts/20210522140146_device.sql
new file mode 100644
index 0000000..e69de29
diff --git a/scripts/20210522140147_device_property.sql b/scripts/20210522140147_device_property.sql
new file mode 100644
index 0000000..e69de29
diff --git a/scripts/20210522140148_device_state.sql b/scripts/20210522140148_device_state.sql
new file mode 100644
index 0000000..e69de29
diff --git a/webui/src/App.css b/webui/src/App.css
deleted file mode 100644
index 74b5e05..0000000
--- a/webui/src/App.css
+++ /dev/null
@@ -1,38 +0,0 @@
-.App {
- text-align: center;
-}
-
-.App-logo {
- height: 40vmin;
- pointer-events: none;
-}
-
-@media (prefers-reduced-motion: no-preference) {
- .App-logo {
- animation: App-logo-spin infinite 20s linear;
- }
-}
-
-.App-header {
- background-color: #282c34;
- min-height: 100vh;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- font-size: calc(10px + 2vmin);
- color: white;
-}
-
-.App-link {
- color: #61dafb;
-}
-
-@keyframes App-logo-spin {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(360deg);
- }
-}
diff --git a/webui/src/App.test.tsx b/webui/src/App.test.tsx
deleted file mode 100644
index 2a68616..0000000
--- a/webui/src/App.test.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import React from 'react';
-import { render, screen } from '@testing-library/react';
-import App from './App';
-
-test('renders learn react link', () => {
- render();
- const linkElement = screen.getByText(/learn react/i);
- expect(linkElement).toBeInTheDocument();
-});
diff --git a/webui/src/logo.svg b/webui/src/logo.svg
deleted file mode 100644
index 9dfc1c0..0000000
--- a/webui/src/logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/webui/src/primitives/Layout.sass b/webui/src/primitives/Layout.sass
new file mode 100644
index 0000000..e69de29
diff --git a/webui/src/primitives/Layout.tsx b/webui/src/primitives/Layout.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/webui/src/reportWebVitals.ts b/webui/src/reportWebVitals.ts
index 49a2a16..f5ae799 100644
--- a/webui/src/reportWebVitals.ts
+++ b/webui/src/reportWebVitals.ts
@@ -1,15 +1,15 @@
-import { ReportHandler } from 'web-vitals';
-
-const reportWebVitals = (onPerfEntry?: ReportHandler) => {
- if (onPerfEntry && onPerfEntry instanceof Function) {
- import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
- getCLS(onPerfEntry);
- getFID(onPerfEntry);
- getFCP(onPerfEntry);
- getLCP(onPerfEntry);
- getTTFB(onPerfEntry);
- });
- }
-};
-
-export default reportWebVitals;
+import { ReportHandler } from 'web-vitals';
+
+const reportWebVitals = (onPerfEntry?: ReportHandler) => {
+ if (onPerfEntry && onPerfEntry instanceof Function) {
+ import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
+ getCLS(onPerfEntry);
+ getFID(onPerfEntry);
+ getFCP(onPerfEntry);
+ getLCP(onPerfEntry);
+ getTTFB(onPerfEntry);
+ });
+ }
+};
+
+export default reportWebVitals;
diff --git a/webui/src/res/colors.sass b/webui/src/res/colors.sass
new file mode 100644
index 0000000..e69de29