private String go(ArrayList arguments)
    {
        if(!arguments.get(1).equals("unlock")) {
            return "Invalid syntax used for the 'go' command.";
        }

        String direction = (String) arguments.get(0);

        if (!gameData.getCurrentLocation().isValidExit(direction)) {
            return "Invalid exit!";
        }

        if(!gameData.getCurrentLocation().getExit(direction).isLocked()) {
            return "That exit is not locked!";
        }
        
        if(!gameData.getPlayerObject().getInventory().containsObject("key")) {  
            return "You have no key in your inventory!";
        }
        
        int locationPasscode = gameData.getCurrentLocation().getLocationNeighour(direction).getPasscode();   
        if(gameData.getPlayerObject().getInventory().getFromInventoryByNamePass(locationPasscode) != null ){
             gameData.getCurrentLocation().getLocationNeighour(direction).unlock();
             gameData.getPlayerObject().getInventory().dropFromInventoryByObject(gameData.getPlayerObject().getInventory().getFromInventoryByNamePass(locationPasscode));
        }else {
             return "Your key doesn't fit that lock";
        }

        return updateLocation(direction);
    }