+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Generic Connection class for Binho Nova to keep track of connection"""
+
+
+class Connection:
+    """Connection class"""
+
+    __instance = None
+
+    @staticmethod
+    def getInstance():
+        """Static access method."""
+        if Connection.__instance is None:
+            Connection()
+        return Connection.__instance
+
+    def __init__(self):
+        """Virtually private constructor."""
+        if Connection.__instance is not None:
+            raise Exception(  # pylint: disable=broad-exception-raised
+                "This class is a singleton!"
+            )
+
+        # pylint: disable=import-outside-toplevel
+        from binhoHostAdapter import binhoHostAdapter
+        from binhoHostAdapter import binhoUtilities
+
+        # pylint: enable=import-outside-toplevel
+        devices = binhoUtilities.listAvailableDevices()
+
+        if len(devices) > 0:
+            Connection.__instance = binhoHostAdapter.binhoHostAdapter(devices[0])
+        else:
+            raise RuntimeError("No Binho Nova found!")