public static void load(){
        BufferedReader reader = null;
        try{
            if(USER_DATA_FILE.exists() == false){
                //System.out.println("USER DATA DOES NOT EXIST");
                USER_DATA_FILE.createNewFile();
                
                makeAllDefault();
                
                return;
            }
            reader = new BufferedReader(new FileReader(USER_DATA_FILE));
            
            //get all data
            ArrayList<StringPair> stringPairs = new ArrayList<StringPair>();
            StringPair readPair = null;
            while((readPair = readLine(reader)) != null){
                stringPairs.add(readPair);
            }
            
            //determine whose data is whose
            for(StringPair pair : stringPairs){
                for(Datum<String> datum : Data.values()){
                    if(datum.description.equals(pair.description)){
                        //descriptions match; data belongs to this datum
                        datum.setData(pair.data, false);
                    }
                }
            }
            
            //set values for each datum
            /*for(Datum<String> datum : Data.values()){
                datum.setData(readLine(reader),true);
            }*/            
        }
        catch(IOException io){
            Utils.debug(io, "Error reading user data");
            //set default values for all
            makeAllDefault();
        }
        finally{
            if(reader != null){
                try{
                    reader.close();
                }
                catch(IOException io){
                    Utils.debug(io, "Error closing input stream in file reader");
                }
            }
            save();
        }
    }