 
 }
 
+#The BaseElements object holds classes which are Visual representations of the
+#objects that comprise a Cypress networked CPS system
 BaseElements = {
-  
+ 
+  #The Controller class is a visual representation of a controller e.g., a
+  #computer that hosts control code
   Controller: class Controller
     constructor: (@parent, x, y, z) ->
       @shp = new Shapes.Diamond(0x007474, x, y, z, 15)
       @parent.obj3d.add(@shp.obj3d)
 
-  
+  #Router is a visual representation of an IP-network router 
   Router: class Router
     constructor: (@parent, x, y, z) ->
       @shp = new Shapes.Circle(0x0047ca, x, y, z, 15)
       @parent.obj3d.add(@shp.obj3d)
 
+  #Switch is a visual representation of an IP-network swtich
   Switch: class Switch
     constructor: (@parent, x, y, z) ->
       @shp= new Shapes.Rectangle(0x0047ca, x, y, z, 25, 25)

    @baseRect = new Shapes.Rectangle(0x262626, 0, 0, 0, @width, @height)
    @ve.scene.add(@baseRect.obj3d)

class VisualEnvironment
  constructor: (@container) ->
    @scene = new THREE.Scene()
    @width = container.offsetWidth

    @addElement((box, x, y) -> new BaseElements.Router(box, x, y, 0))
    @addElement((box, x, y) -> new BaseElements.Switch(box, x, y, 0))

#The Surface holds visual representations of Systems and Elements
class Surface
  #Constructs a Surface object given a @ve visual environment
  constructor: (@ve) ->
