large commit. new code, with sensors, line count dropped, etc
diff --git a/nodes/node.py b/nodes/node.py
index d7cae40..138d123 100644
--- a/nodes/node.py
+++ b/nodes/node.py
@@ -1,41 +1,16 @@
 class Node(object):
 
-    def __init__(self, ip, roles, username=None,
-                 password=None, key_path=None, port=None):
+    def __init__(self, conn_url, roles):
         self.roles = roles
-        self.ip = ip
-        self.username = username
-        self.password = password
-        self.port = port
-        self.key_path = key_path
+        self.conn_url = conn_url
         self.connection = None
 
     def __str__(self):
-        return "<Node: url={0!r} roles={1} >".format(self.ip,
-                                                     ", ".join(self.roles))
+        templ = "<Node: url={conn_url!r} roles={roles}" + \
+                " connected={is_connected}>"
+        return templ.format(conn_url=self.conn_url,
+                            roles=", ".join(self.roles),
+                            is_connected=self.connection is not None)
 
     def __repr__(self):
         return str(self)
-
-    def set_conn_attr(self, name, value):
-        setattr(self, name, value)
-
-    @property
-    def connection_url(self):
-        connection = []
-
-        if self.username:
-            connection.append(self.username)
-            if self.password:
-                connection.extend([":", self.password, "@"])
-            connection.append("@")
-
-        connection.append(self.ip)
-        if self.port:
-            connection.extend([":", self.port])
-            if self.key_path:
-                connection.extend([":", self.key_path])
-        else:
-            if self.key_path:
-                connection.extend([":", ":", self.key_path])
-        return "".join(connection)