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

        ArrayList<String> streamList = AzubuStream.getStreamList(); //ids for stream
        ArrayList<String> streamName = AzubuStream.getStreamName(); //name for streamer
        ArrayList<Boolean> streamAlive = AzubuStream.getStreamAlive(); //whether the stream is up or not
        ArrayList<String> finalList = new ArrayList<>();
        ArrayList<String> onlineList = new ArrayList<>();
        ArrayList<String> offlineList = new ArrayList<>();
        try {
            for(int i = 0; i < streamList.size(); i++) {
                //checks if streamer is on
                if (streamAlive.get(i)) {
                    onlineList.add(streamName.get(i) +" (ONLINE)");
                } else {
                    offlineList.add(streamName.get(i));
                }
            }
        } catch (Exception ignored) {
            //multi threading can crash it here when adding/removing streams!
        }
        Collections.sort(onlineList);
        Collections.sort(offlineList);

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

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