public boolean upgradeSettlement(Coordinate location, Player owner) {
	    boolean isUpgraded = false;
	    
	    location = location.normalizeCoordinate();
	    
	    // Attempt to find the settlement and upgrade it
	    Node locationNode = nodeSet.get(location);
	    
	    // Make sure user has proper hand
        int numOre = owner.getNumCards(ResourceCard.ORE.toString());
        int numWheat = owner.getNumCards(ResourceCard.WHEAT.toString());
        
	    if (locationNode != null && locationNode.hasSettlement() &&
	        numOre >= 3 && numWheat >= 2) {
	        
	        Settlement settlement = locationNode.getSettlement();
	        
	        if (settlement.getOwner() == owner) {
	            settlement.upgradeToCity();
	            isUpgraded = true;
	            
	            owner.incrementPermanentPoints();
	            
	            owner.doCityPurchase();
	        }
	    }
	    
	    return isUpgraded;
	}