     // Node Categories [Tuan/Vincent]
     let heroCategory = 0x1 << 1
     let groundCategory = 0x1 << 2
+    let obstacleCategory = 0x1 << 3
+  
   
   override func didMoveToView(view: SKView) {
     
-    //kori/brian
-    let trashCan = SKSpriteNode(imageNamed: "trashCan.gif")
-    let craneHook = SKSpriteNode(imageNamed: "crane.gif")
+    
     var bradJumpTexture = SKTexture(imageNamed: "")
     var bradDuckTexture = SKTexture(imageNamed: "")
-
-    //spawns a trashcan every 2 seconds -kori/brian
-    let spawn  = SKAction.runBlock({() in self.spawnObstacles()})
-    let delay = SKAction.waitForDuration(NSTimeInterval(1.5))
-    let spawnThenDelay = SKAction.sequence([spawn, delay])
-    let spawnThenDelayForever = SKAction.repeatActionForever(spawnThenDelay)
-    self.runAction(spawnThenDelayForever)
+    
+       
+
+        //spawns a trashcan every 2 seconds -kori/brian
+        let spawnBench  = SKAction.runBlock({() in self.spawnBench()})
+        let spawnObstacles = SKAction.runBlock({() in self.spawntrashCan()})
+        let craneHook = SKAction.runBlock({() in self.spawnCrane()})
+        let delay = SKAction.waitForDuration(NSTimeInterval(2.0))
+        let spawnThenDelay = SKAction.sequence([spawnBench,delay,delay,spawnObstacles,delay, delay, craneHook])
+        let spawnThenDelayForever = SKAction.repeatActionForever(spawnThenDelay)
+        self.runAction(spawnThenDelayForever)
+
+      
 
         // Swipe Recognizer Setup
         var swipeRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeAction:")

            trash.removeFromParent()
            
          }
          
        
        if self.jumpMode == true {
            self.currentTime = currentTime
            self.deltaTime = self.currentTime - self.previousTime
            self.previousTime = currentTime
            self.jumpTime = self.jumpTime + self.deltaTime
        }
    }
})
}
    
    // MARK: - HERO ACTIONS
    // [Tuan/Vincent]

    

    override func update(currentTime: CFTimeInterval) {
      
      
      //kori and brian
      
      self.enumerateChildNodesWithName("trashCan", usingBlock: { (node, stop) -> Void in
        if let trash = node as? SKSpriteNode {
          trash.position = CGPoint(x: trash.position.x-self.roadSpeed, y: trash.position.y)
