anchor.diff:              Q.state.checkPlayerDeath();
           };
   
  +        this.breakHeart = function (damage) {
  +            console.log("breaking hearts...");
  +            var sentinel = true;
  +            var i = 0;
  +            var length = stage.p.hearts.length;
  +
  +            while (sentinel && i < length) {
  +                var heart = stage.p.hearts[i];
  +
  +                if (heart.p.damage < 2) {
  +                    heart.breakHeart();
  +                    sentinel = false;
  +                }
  +
  +                i += 1;
  +            }
  +
  +            Q.state.checkPlayerDeath();
  +        };
  +
           Q.state.on("change.hp", this.updateHearts);
  +        Q.state.on("change.damage", this.breakHeart);
       });
   
       Q.scene("endGame",function(stage) {
  
positive.code:         /* when the player loses hearts we 
           * do this */
          this.updateHearts = function (hp) {
              var length = stage.p.hearts.length;
  
              for (; length > hp; length--) {
  
negative.code:         stage.collisionLayer(room);
          stage.p.rooms[Q.state.get("room")] = room;
  
          var player  = stage.insert(new Q.Player({  x: starting_x, y: starting_y }));
          var monster = stage.insert(new Q.Monster({ x: 5*32 + 16, y: 6*32 + 16 }));
  
          stage.getRoom = function (i) {
              return this.p.rooms[i];
  