private void initializeGame() {
        // initialize timer
        time = 15;
        
        // initialize quests
        initializeQuest("quest1", 2);
        
        // create the rooms
        // intro
        Room bedroom = new Room("bedroom", "in your bedroom on the second floor of the house. The night is gloomy and the faint brightness from the street lanterns outside cast eerie shadows on the walls, while the wind produces startling sounds. The pitter-patter of the rain puts you in a mood of desolation.");
        Room hallwayHouse = new Room("hallwayHouse", "in the hallway at the top of the stairs. The railing, littered with ornaments, leads down into complete darkness, contrasting the light from the candle on the wall.");
        Room study = new Room("study", "in the study upstairs. The bookcases are crammed with carefully sorted literature.");
        Room stairway = new Room("stairway", "in the stairs. You try to sneak but the age of the stairs is evident.");
        Room antechamber = new Room("antechamber", "in the antechamber. Your eyes start to adjust to the darkness slowly. There is a small bit of light from the keyhole in the door and from the windows in the kitchen and living room.");
        Room kitchen = new Room("kitchen", "in the kitchen. The rain lies heavy on the windows.");
        // dungeon
        Room cell1 = new Room("cell1", "in the prison cell your kidnappers dumped you in. The warm light from the torches in the hallway shines through the cold iron bars and everything's silent except for the dripping sound of the occasional drop of water from the moist ceiling.");
        Room hallwayA1 = new Room("hallwayA1", "in the hallway outside the prison cell you woke up in. There's another cell to the left, open and devoid of any traces of life.");
        Room hallwayA2 = new Room("hallwayA2", "in the hallway south of the prison cell you woke up in. There's another cell on your left side along the hallway to the east.");
        Room cell2 = new Room("cell2", "in the cell north of the prison cell you woke up in. Whoever might have resided in here must have left ages ago.");
        Room hallwayA3 = new Room("hallwayA3", "in the hallway around the corner from your old cell. There's another cell to the north.");
        Room cell3 = new Room("cell3", "in the cell the old man resided in. You feel pretty confounded at the fact the scrawny man didn't seem to have anything, not even food or water...");
        Room hallwayA4 = new Room("hallwayA4", "at the bottom of a narrow spiral staircase made from stone, leading clockwise upwards. Torches are put at regular intervals, illuminating the moist rock.");
        Room stairsAB = new Room("stairsAB", "in the middle of the spiral staircase, leading clockwise upwards.");
        Room hallwayB1 = new Room("hallwayB1", "at the top of a narrow spiral staircase made from stone, leading clockwise upwards. Torches are put at regular intervals, illuminating the moist rock. There's a door with a small window with bars to the north.");
        // rooms that the program needs to be able to access outside of this block are also put in the "rooms" TreeMap.
        rooms.put(study.getName(), study);
        rooms.put(cell1.getName(), cell1);
        rooms.put(hallwayA1.getName(), hallwayA1);
        rooms.put(cell2.getName(), cell2);
        rooms.put(hallwayA2.getName(), hallwayA2);
        rooms.put(hallwayA3.getName(), hallwayA3);
        rooms.put(cell3.getName(), cell3);
        rooms.put(hallwayA4.getName(), hallwayA4);
        rooms.put(stairsAB.getName(), stairsAB);
        rooms.put(hallwayB1.getName(), hallwayB1);
        
        // create characters.
        initializeCharacter("Hrangst Jaltibrond", 50, 30, 100, false, false, cell3);
        
        // create dialogue for the characters.
        characters.get("Hrangst Jaltibrond").addDialogue("pardon", "Pardon?");
        characters.get("Hrangst Jaltibrond").addDialogue("greetingsNear", "A scrawny, bearded old figure inhabits the cell to the north.\nHrangst Jaltibrond: Lone wanderer... I beg of you, help me, please.");
        characters.get("Hrangst Jaltibrond").addDialogue("greetingsSame", "Hrangst Jaltibrond: Please...");
        characters.get("Hrangst Jaltibrond").addDialogue("salutations", "Thank the Gods you arrived. I am a mere mortal in this horrible place. Could you please help me get out of here? I heard you using the key over there...");
        
        // initialize items
        initializeItem("Bread loaf", "A bread loaf in surprisingly good condition.", 0.2, "none", 0, true, "miscellaneous", "You pull out the bread loaf and it does look tasty, but you don't feel that hungry yet.", true, "cell1");
        initializeItem("Sheath knife", "A sharp sheath knife made of steel.", 0.2, "Damage", 20, true, "weapon", "You swing the knife.", false, "study");
        initializeItem("Note from kidnappers", "A rather neatly put together note, apparently written by whoever kidnapped you.", 0.1, "none", 0, true, "miscellaneous", "It reads:\n\"" + player.getName() + ",\nYour plans are over. I know of your schemes, your plot to overthrow the order using Dagon's heart.\nYou will not succeed. I am a mage of great power, indeed I once trapped the emperor himself and have now returned\nmore powerful than ever. You are trapped in my dimension, my plane of Oblivion, just like my father, Jagar Tharn, trapped the emperor all those centuries ago.\nBut I am a person of sports, and will allow you a chance to redeem yourself. Of course your plot is forever lost, but\nyou may yet survive and leave this place. Prove your worthiness in my dungeon!\nZuul Tharn\"", false, "cell1");
        initializeItem("Crude key", "A very crude looking key made from dark and rusty iron.", 0.05, "none", 0, true, "key", "You pull the key out of your bag, it feels rather fragile and light in your palm.", true, "cell2");
        initializeItem("Sturdy key", "A sturdy key made from cast iron.", 0.1, "none", 0, true, "key", "You pull the key out of your bag, it feels rather cold and heavy.", true, "Hrangst Jaltibrond");
        initializeItem("Rusty sword", "A rusty old sword, dull to the point any death caused by it must be extremely painful.", 5, "Damage", 50, true, "weapon", "You swing the sword.", false, "hallwayB1");
        initializeItem("Fists", "Your fists. They may be used as a last route while fighting.", 0, "Damage", 5, true, "weapon", "You swing a powerful blow using your fists.", true, "");
        
        
        // initialize room exits.
        // intro
        bedroom.setExit("south", hallwayHouse, true, null);
        hallwayHouse.setExit("north", bedroom, true, null);
        hallwayHouse.setExit("east", study, true, null);
        hallwayHouse.setExit("down", stairway, true, null);
        study.setExit("west", hallwayHouse, true, null);
        stairway.setExit("up", hallwayHouse, true, null);
        stairway.setExit("down", antechamber, true, null);
        antechamber.setExit("east", kitchen, true, null);
        antechamber.setExit("up", stairway, true, null);
        antechamber.setExit("west", null, true, null);
        kitchen.setExit("west", antechamber, true, null);
        // maze
        cell1.setExit("east", hallwayA1, true, null);
        hallwayA1.setExit("north", cell2, true, null);
        hallwayA1.setExit("west", cell1, true, null);
        hallwayA1.setExit("south", hallwayA2, false, items.get("Crude key"));
        cell2.setExit("south", hallwayA1, true, null);
        hallwayA2.setExit("north", hallwayA1, true, null);
        hallwayA2.setExit("east", hallwayA3, true, null);
        hallwayA3.setExit("west", hallwayA2, true, null);
        hallwayA3.setExit("north", cell3, false, items.get("Crude key"));
        cell3.setExit("south", hallwayA3, true, null);
        hallwayA3.setExit("east", hallwayA4, false, items.get("Sturdy key"));
        hallwayA4.setExit("west", hallwayA3, true, null);
        hallwayA4.setExit("up", stairsAB, true, null);
        stairsAB.setExit("down", hallwayA4, true, null);
        stairsAB.setExit("up", hallwayB1, true, null);
        hallwayB1.setExit("down", stairsAB, true, null);
        
        player.addLocationHistory(bedroom);  // start game in bedroom
        player.addItem(items.get("Fists"));
    }