public static synchronized String[] getTwitchStreamList() {
        //TODO ensure these streams are loaded up via text file
        twitchStream.areStreamsUp();

        ArrayList<String> streamList = TwitchStream.getStreamList(); //ids for stream
        ArrayList<String> streamName = TwitchStream.getStreamName(); //name for streamer
        ArrayList<Boolean> streamAlive = TwitchStream.getStreamAlive(); //whether the stream is up or not
        ArrayList<String> finalList = new ArrayList<>();
        ArrayList<String> onlineList = new ArrayList<>();
        ArrayList<String> offlineList = new ArrayList<>();
        ArrayList<String> makeLowercase = new ArrayList<>();
        try {
            for(int i = 0; i < streamList.size(); i++) {
                //checks if streamer is on
                String tempName = streamName.get(i);
                if (Character.isAlphabetic(tempName.charAt(0)) && !Character.isUpperCase(tempName.charAt(0))) {
                    makeLowercase.add(tempName);
                    tempName = Character.toUpperCase(tempName.charAt(0)) + tempName.substring(1);
                }
                if (streamAlive.get(i)) {
                    onlineList.add(tempName +" (ONLINE)");
                } else {
                    offlineList.add(tempName);
                }
            }
        }    catch (Exception e) {
//            System.out.println(e);
            //Can error here from multi threading from adding and removing streams
        }
        Collections.sort(onlineList);
        Collections.sort(offlineList);

        finalList.addAll(onlineList);
        finalList.addAll(offlineList);

        for (int i =0; i < finalList.size(); i++) {
            for(String lowercase : makeLowercase) {
                if (finalList.get(i).equalsIgnoreCase(lowercase)) {
                    finalList.set(i, lowercase);
                }
            }
        }

        return finalList.toArray(new String[finalList.size()]);
    }