public static void loadDatabase() {
        try {

            Path dbPath = Paths.get(DaemonMainController.getDatabasePath());

            System.out.println("[INFO]  Loading database from file at " + dbPath.toString());

            File d = new File(DaemonMainController.getDatabasePath());

            if(!d.exists() || !d.isFile())
                throw new FileNotFoundException();

            byte[] rawDb = Files.readAllBytes(dbPath);
            String db = new String(rawDb, Charset.defaultCharset());
            Map<String, Object> tracks = dooooom.jmpd.data.JsonParser.stringToMap(db);

            ArrayList<Map<String,String>> data = (ArrayList<Map<String,String>>) tracks.get("data");
            ArrayList<Track> savedLibrary = new ArrayList<Track>();

            for(Map<String, String> m: data) {
                savedLibrary.add(new Track(m));
            }

            library = savedLibrary;
        } catch (FileNotFoundException e) {
            System.out.println("[INFO]  No database file found. Attempting to create a new one.");
            updateDatabase();
        } catch (IOException e) {

        } catch (JsonParsingException e) {
            System.out.println("[ERROR]  Database file did not parse correctly. Possibly corrupt.");
            updateDatabase();
        }
    }