 
 ###
 class Physics
-  # List of all particles in the simulation
-  particles: []
-
-  # List of all spring constraints in the simulation
-  springs: []
-
-  # List of all behaviours
-  behaviours: []
-  constraints: []
-
-  # The particle emitter
-  emitter: null
-
-  # The spatial optimisation manager to use
-  space: null
-
-  # Settings
-  constraintIterations: 1
-  springIterations: 1
 
   constructor: ->
+    # List of all particles in the simulation
+    @particles = []
+
+    # List of all spring constraints in the simulation
+    @springs = []
+
+    # List of all behaviours
+    @behaviours = []
+    @constraints = []
+
+    # The particle emitter
+    @emitter = null
+
+    # The spatial optimisation manager to use
+    @space = null
+
+    # Settings
+    @constraintIterations = 1
+    @springIterations = 1
+
     @space = new Space()
     @emitter = new Emitter(this)
     @clear()

  Verlet Spring
###
class Spring
  a: null # first particle
  b: null # second particle
  restLength: 0
  strength: 0.5

  constructor: (@a, @b, @strength = 0.5) ->
    @restLength = @a.position.distance @b.position


  Particle Emitter
###
class Emitter

  # local vars
  timer = -1
