public override void Activate(Renderer renderer)
        {
            if (renderer == null)
            {
                throw new ArgumentNullException("renderer");
            }

            Point bottomRightPointOfScreen = new Point(MainGame.SCREEN_WIDTH_LOGICAL, MainGame.SCREEN_HEIGHT_LOGICAL);

            string mapPath = ContentManager.GetContentPath(mapPathToLoad);

            tiledMap = new TiledMap(mapPath, renderer, agentFactory);

            simulationManager.SetCurrentMap(tiledMap);

            bankAccount = new BankAccount(1000);
            bankAccount.AmountDeposited += bankAccount_AmountDeposited;
            bankAccount.AmountWithdrawn += bankAccount_AmountWithdrawn;

            mailManager = new MailManager();
            mailManager.UnreadMailCountChanged += mailbox_UnreadMailCountChanged;

            Employee employee  = agentFactory.CreateEmployee(SimulationManager.SimulationTime, simulationManager.WorldDateTime, GetRandomEmployeePosition());
            Resume   resume    = new Resume(r => userInterfaceManager.ShowMenuResume(r), employee, "At my past job, I spent a lot of time sleeping at my desk. I promise not to do that if you hire me. Also, I need money. That said, I can't promise that my narcolepsy is completely cured. I have a doctor's note if you need one.");
            Employee employee2 = agentFactory.CreateEmployee(SimulationManager.SimulationTime, simulationManager.WorldDateTime, GetRandomEmployeePosition());
            Resume   resume2   = new Resume(r => userInterfaceManager.ShowMenuResume(r), employee2, "At my past job, I spent a lot of time sleeping at my desk. I promise not to do that if you hire me. Also, I need money. That said, I can't promise that my narcolepsy is completely cured. I have a doctor's note if you need one.");
            Employee employee3 = agentFactory.CreateEmployee(SimulationManager.SimulationTime, simulationManager.WorldDateTime, GetRandomEmployeePosition());
            Resume   resume3   = new Resume(r => userInterfaceManager.ShowMenuResume(r), employee3, "At my past job, I spent a lot of time sleeping at my desk. I promise not to do that if you hire me. Also, I need money. That said, I can't promise that my narcolepsy is completely cured. I have a doctor's note if you need one.");

            mailManager.SendMail(new MailItem("*****@*****.**", "*****@*****.**", "Test Subject 1", "Test Body 1", resume, MailState.Unread));
            mailManager.SendMail(new MailItem("*****@*****.**", "*****@*****.**", "Test Subject 2", "Test Body 2", resume2, MailState.Unread));
            mailManager.SendMail(new MailItem("*****@*****.**", "*****@*****.**", "Test Subject 3", "Test Body 3", resume3, MailState.Unread));
            mailManager.SendMail(new MailItem("*****@*****.**", "*****@*****.**", "Test Subject 4", "Test Body 4", resume, MailState.Unread));
            mailManager.SendMail(new MailItem("*****@*****.**", "*****@*****.**", "Test Subject 5", "Test Body 5", resume, MailState.Unread));

            IEnumerable <IPurchasable> purchasableEquipment = GetPurchasableEquipment();
            IEnumerable <IPurchasable> purchasableRooms     = GetPurchasableRooms();

            userInterfaceManager = new UserInterfaceManager(ContentManager, bottomRightPointOfScreen,
                                                            purchasableEquipment,
                                                            purchasableRooms,
                                                            mailManager.PlayerInbox,
                                                            mailManager.PlayerOutbox,
                                                            mailManager.PlayerArchive,
                                                            mailManager.PlayerUnreadMailCount,
                                                            bankAccount.Balance,
                                                            simulationManager.TrackedEmployees.Count());

            userInterfaceManager.PurchasableItemSelected += UserInterfaceManagerOnPurchasableItemSelected;
            userInterfaceManager.PurchasableItemPlaced   += UserInterfaceManagerOnPurchasableItemPlaced;
            userInterfaceManager.MailArchived            += UserInterfaceManagerOnMailArchived;
            userInterfaceManager.MainMenuButtonClicked   += (sender, e) => ScreenManager.AddScreen(CreatePauseMenuScreen());
            userInterfaceManager.ResumeAccepted          += (sender, e) => simulationManager.AddAgent(e.Employee);
            userInterfaceManager.EmployeeFired           += UserInterfaceManagerOnEmployeeFired;
            userInterfaceManager.EmployeePromoted        += UserInterfaceManagerOnEmployeePromoted;
            userInterfaceManager.EmployeeDisciplined     += UserInterfaceManagerOnEmployeeDisciplined;
            userInterfaceManager.EquipmentSold           += HandleEquipmentSold;
            userInterfaceManager.EquipmentRepaired       += HandleEquipmentRepaired;

            business = new BusinessManager();
        }