Add operations placeholders
diff --git a/esm/Connector.js b/esm/Connector.js
new file mode 100644
index 0000000..f6b24a8
--- /dev/null
+++ b/esm/Connector.js
@@ -0,0 +1,47 @@
+class Connector {
+  constructor(settings) { // eslint-disable-line no-useless-constructor, no-unused-vars
+  }
+
+  async start() { // eslint-disable-line no-empty-function
+  }
+
+  async addDevice(device) { // eslint-disable-line no-empty-function, no-unused-vars
+  }
+
+  async removeDevice(id) { // eslint-disable-line no-empty-function, no-unused-vars
+  }
+
+  async listDevices() { // eslint-disable-line no-empty-function
+  }
+
+  // Device (fog) to cloud
+
+  async publishData(id, dataList) { // eslint-disable-line no-empty-function, no-unused-vars
+  }
+
+  async updateSchema(id, schemaList) { // eslint-disable-line no-empty-function, no-unused-vars
+  }
+
+  async updateProperties(id, properties) { // eslint-disable-line no-empty-function, no-unused-vars
+  }
+
+  // Cloud to device (fog)
+
+  // cb(event) where event is { id, config: [{}] }
+  async onConfigUpdated(cb) { // eslint-disable-line no-empty-function, no-unused-vars
+  }
+
+  // cb(event) where event is { id, properties: {} }
+  async onPropertiesUpdated(cb) { // eslint-disable-line no-empty-function, no-unused-vars
+  }
+
+  // cb(event) where event is { id, sensorId }
+  async onDataRequested(cb) { // eslint-disable-line no-empty-function, no-unused-vars
+  }
+
+  // cb(event) where event is { id, sensorId, data }
+  async onDataUpdated(cb) { // eslint-disable-line no-empty-function, no-unused-vars
+  }
+}
+
+export { Connector }; // eslint-disable-line import/prefer-default-export
diff --git a/esm/index.js b/esm/index.js
index e69de29..227e651 100644
--- a/esm/index.js
+++ b/esm/index.js
@@ -0,0 +1,3 @@
+import { Connector } from './Connector';
+
+export default Connector;