     setTimeout((-> next_turn bugs, canvas, turns + 1), 10)
 
 starting_bugs = ->
-  []
+  grid = []
+
+  for x in [0..59]
+    grid[x] = []
+    for y in [0..39]
+      grid[x][y] = null
+
+  bugs = grid: grid
+
+
+  add_bug bugs, 'fly_trap', 'rgb(0,0,255)', create_fly_trap
+  add_bug bugs, 'fly_trap', 'rgb(0,0,255)', create_fly_trap
+  add_bug bugs, 'fly_trap', 'rgb(0,0,255)', create_fly_trap
+
+  bugs
+
+add_bug = (bugs, name, color, move) ->
+  location  = random_location bugs
+  direction = random_num 3
+
+  bugs.grid[location.x][location.y] =
+    move:      move
+    name:      name
+    direciton: direction
+    location:  location
+    color:     color
+
+random_location = (bugs) ->
+  x = random_num 59
+  y = random_num 39
+
+  if (bugs.grid[x][y]?)
+    random_location bugs
+  else
+    x: x, y: y
 
 next_iteration = (bugs) ->
   bugs

render_game = (canvas, bugs) ->
  canvas.clear()

  canvas.add new fabric.Rect
    left:   random_num(600 - 10)
    top:    random_num(400 - 10)
    height: 10
    width:  10
    fill:   'rgb(255,0,0)'

  canvas.renderAll()

random_num = (max, min = 0) ->
  Math.floor(Math.random() * (max - min) + min)

  canvas.setWidth  600

  turns = 0
  bugs  = starting_bugs()
  render_game canvas, bugs

  #next_turn bugs, canvas, turns

next_turn = (bugs, canvas, turns) ->
  bugs = next_iteration bugs
