public void runDisplays()
    {
        
        resetInstances();
        wDisp.setLocation(p);
        wDisp.setVisible(true);
        while (!wDisp.displayNext())
        {
            try
            {
                Thread.sleep(100);
            }
            catch(Exception e)
            {
                System.out.println(e);
            }
        }
        
        userType = wDisp.getUserType();
        userID = wDisp.getID();
            
        createUser();       
        spot = garage.searchParkingSpot(user);
        
        found = (spot != null);
        valid = !userType.equalsIgnoreCase("invalid"); 
        generateMessage(found, valid);
        pDisp.updateParkingNotification(message1, message2);
        duplicate = isDuplicate(userID);
        if(duplicate)
        {
            pDisp.updateParkingNotification("Duplicate ID! ",
                     "Press next to notify the security officer");
        }
        p = wDisp.getLocation();
        pDisp.setLocation(p);
        wDisp = null;
        pDisp.setVisible(true);
        while(!pDisp.displayNext())
        {
            try
            {
                Thread.sleep(100);
            }
            catch(Exception e)
            {
                System.out.println(e);
            }
        }
        
        if(pDisp.isCanceled())
        {
            duplicate = false;
            return;
        }
        else if(duplicate)
        {
            System.out.println("here");
            spot = null;
            return;
        }
        else if(!found)
            return;
        else
            garage.addParkingUser(spot, user);
        
        p = pDisp.getLocation();
        pDisp = null;
        sDisp.updateParkingSpotNumberLabel("Your spot number is " + 
                                             spot.getParkingNumber());
        sDisp.setLocation(p);
        sDisp.setVisible(true);
        while(!sDisp.displayNext())
        {
            try
            {
                Thread.sleep(100);
            }
            catch(Exception e)
            {
                System.out.println(e);
            }
        }
        if(sDisp.isCanceled())
        {
            garage.removeParkedUser(spot);
            return;
        }
        
        p = sDisp.getLocation();
        sDisp = null;
        dDisp.setLocation(p);
        dDisp.updateDirections("1. Go to floor #" 
                + spot.getFloor() + "\n2. Head to the " 
                    + spot.getDirections() + " part." +
                    "\n3. Park on " + spot.getUser().toString() 
                            + " spot labeled #" + spot.getParkingNumber()+ ".");
        dDisp.setVisible(true);
        while(!dDisp.displayNext())
        {
            try
            {
                Thread.sleep(100);
            }
            catch(Exception e)
            {
                System.out.println(e);
            }
        }
        if(dDisp.isCanceled())
        {
            garage.removeParkedUser(spot);
            return;
        }
        if(userID.length() > 2)
            duplicates.put(userID, spot);
        p = dDisp.getLocation();
    }