anchor.diff:  
               /* we slide room 2 to x: -224, y: 224 and room 3 to x: 0, y: 0 */
   
  -            stage.insert(room);
  -            background.animate({ x: -(direction[0]) * (ROOM_WIDTH / 2), y: direction[1] * (ROOM_HEIGHT / 2) });
  -            room.animate({ x: 0 });
  -            Q('Player').first().animate({ x: rel_x });
  -
  +            stage.insert(new_room);
  +            stage.p.rooms[Q.state.get("room")] = new_room;
  +            current_room.animate({ x: -(direction[0]) * (ROOM_WIDTH / 2), y: -(direction[1]) * (ROOM_HEIGHT / 2) }, { callback: function () {
  +                stage.remove(current_room); // I sort of have to use an anonymous function here
  +            }});
  +
  +            new_room.animate({ x: 0, y:0 });
  +            player.animate({ x: rel_x, y: rel_y });
           };
   
           /* later, add this to a component called "zeldaSlide" */
  
positive.code:         },
  
          update: function (dt) {
              $('#player_x').text("player x: " + parseInt(Q.state.get("player_x", 10)));
              $('#player_y').text("player y: " + parseInt(Q.state.get("player_y")));
              $('#room_x').text("room x: " + Q.state.get("room_x"));
              $('#room_y').text("room y: " + Q.state.get("room_y"));
              $('#room').text("room: " + Q.state.get("room"));
  
negative.code:             room_x: 0,
              room_y: 0,
  
              // whether the game state thinks the player is "leaving"
              exiting: false
          });
  
          stage.p = {};
          stage.p.rooms = [];
  
          var room = new Q.Room({ dataAsset: Q.rooms.items[Q.state.get("room")], layerIndex: 0, sheet: 'zelda', tileW: 32, tileH: 32, type: Q.SPRITE_NONE });
          stage.insert(room);
          stage.p.rooms[Q.state.get("room")] = room;
  
          var player = stage.insert(new Q.Player({ x: starting_x, y: starting_y }));
  
          stage.getRoom = function (i) {
              return this.p.rooms[i];
          };
  
          this.zeldaSlide = function () {
              if (Q.state.get("exiting") === false) return false;
  
              var player = Q('Player').first();
              var p = player.p;
  
              var rel_x = p.x;
              var rel_y = p.y;
  
              /* we know that the player is exiting, we have but
               * to determine the direction */
  