diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index 96ee3d150326382031346a657760fffee06365d5..0000000000000000000000000000000000000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "java.project.sourcePaths": ["src"],
-    "java.project.outputPath": "bin"
-}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
deleted file mode 100644
index b3ab6717c65b26b2dc16f798ca0ac0a0ccc6ff56..0000000000000000000000000000000000000000
--- a/.vscode/tasks.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-	"version": "2.0.0",
-	"tasks": [
-		{
-			"type": "java",
-			"mainClass": "Main",
-			"targetPath": "${workspaceFolder}/${workspaceFolderBasename}.jar",
-			"elements": [
-				"${compileOutput}",
-				"${dependencies}"
-			],
-			"problemMatcher": [],
-			"label": "java: exportjar:Random Step Creator",
-			"group": {
-				"kind": "build",
-				"isDefault": true
-			}
-		}
-	]
-}
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 7c03a5324c7c44fcffc47e69d89a9d29c5e528b4..0000000000000000000000000000000000000000
--- a/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-## Getting Started
-
-Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code.
-
-## Folder Structure
-
-The workspace contains two folders by default, where:
-
-- `src`: the folder to maintain sources
-- `lib`: the folder to maintain dependencies
-
-Meanwhile, the compiled output files will be generated in the `bin` folder by default.
-
-> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there.
-
-## Dependency Management
-
-The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies).
diff --git a/Random Step Creator.jar b/Random Step Creator.jar
deleted file mode 100644
index da16a1b22d84e2d138e6d2a34b04e9f711d7c6d2..0000000000000000000000000000000000000000
Binary files a/Random Step Creator.jar and /dev/null differ
diff --git a/bin/AdjustBPMThread.class b/bin/AdjustBPMThread.class
deleted file mode 100644
index cf744e486b3f1c936333ca05986ac2815f06aa2d..0000000000000000000000000000000000000000
Binary files a/bin/AdjustBPMThread.class and /dev/null differ
diff --git a/bin/AdjustBPMWindow$1.class b/bin/AdjustBPMWindow$1.class
deleted file mode 100644
index bbedd9468e1d08bdeb9b02309317c745846be12f..0000000000000000000000000000000000000000
Binary files a/bin/AdjustBPMWindow$1.class and /dev/null differ
diff --git a/bin/AdjustBPMWindow$2.class b/bin/AdjustBPMWindow$2.class
deleted file mode 100644
index 536ce9ab15ba175199a0bd9a80447f5eb1070da1..0000000000000000000000000000000000000000
Binary files a/bin/AdjustBPMWindow$2.class and /dev/null differ
diff --git a/bin/AdjustBPMWindow$3.class b/bin/AdjustBPMWindow$3.class
deleted file mode 100644
index f5f8c513e2c9a43933d45f00f3ed09e6a5508dca..0000000000000000000000000000000000000000
Binary files a/bin/AdjustBPMWindow$3.class and /dev/null differ
diff --git a/bin/AdjustBPMWindow$4.class b/bin/AdjustBPMWindow$4.class
deleted file mode 100644
index 7c4a72784145325544d1481366e21ef287959b01..0000000000000000000000000000000000000000
Binary files a/bin/AdjustBPMWindow$4.class and /dev/null differ
diff --git a/bin/AdjustBPMWindow$ArrowKeyListener.class b/bin/AdjustBPMWindow$ArrowKeyListener.class
deleted file mode 100644
index b4e80a681bbbbe239ec10014eec348dc880a17f2..0000000000000000000000000000000000000000
Binary files a/bin/AdjustBPMWindow$ArrowKeyListener.class and /dev/null differ
diff --git a/bin/AdjustBPMWindow$PlaySoundThread.class b/bin/AdjustBPMWindow$PlaySoundThread.class
deleted file mode 100644
index d0d1e569dcdb3e228508d0ccb5436168be7b2c95..0000000000000000000000000000000000000000
Binary files a/bin/AdjustBPMWindow$PlaySoundThread.class and /dev/null differ
diff --git a/bin/AdjustBPMWindow$TimingThread.class b/bin/AdjustBPMWindow$TimingThread.class
deleted file mode 100644
index 732230fb1a44f7706d758b722751c20f0e29d5b0..0000000000000000000000000000000000000000
Binary files a/bin/AdjustBPMWindow$TimingThread.class and /dev/null differ
diff --git a/bin/AdjustBPMWindow$UpdateIconThread.class b/bin/AdjustBPMWindow$UpdateIconThread.class
deleted file mode 100644
index daf4f4d513a12cd286515f1d8a6d8c148d2cda34..0000000000000000000000000000000000000000
Binary files a/bin/AdjustBPMWindow$UpdateIconThread.class and /dev/null differ
diff --git a/bin/AdjustBPMWindow.class b/bin/AdjustBPMWindow.class
deleted file mode 100644
index e016fd3ad0b12353d2cc9296937e48789b568fa5..0000000000000000000000000000000000000000
Binary files a/bin/AdjustBPMWindow.class and /dev/null differ
diff --git a/bin/CalculateMeasureWindow$1.class b/bin/CalculateMeasureWindow$1.class
deleted file mode 100644
index b9886f2255166cb076b915db123b69d99912bfc4..0000000000000000000000000000000000000000
Binary files a/bin/CalculateMeasureWindow$1.class and /dev/null differ
diff --git a/bin/CalculateMeasureWindow$2.class b/bin/CalculateMeasureWindow$2.class
deleted file mode 100644
index 593bda96f488529a78244d055b31a4e164b3f744..0000000000000000000000000000000000000000
Binary files a/bin/CalculateMeasureWindow$2.class and /dev/null differ
diff --git a/bin/CalculateMeasureWindow$3.class b/bin/CalculateMeasureWindow$3.class
deleted file mode 100644
index e0307b78c1684e331eecce2941534941ac3fb911..0000000000000000000000000000000000000000
Binary files a/bin/CalculateMeasureWindow$3.class and /dev/null differ
diff --git a/bin/CalculateMeasureWindow.class b/bin/CalculateMeasureWindow.class
deleted file mode 100644
index e7ee8b2ff2a264630ebcf45a253d8372584af14b..0000000000000000000000000000000000000000
Binary files a/bin/CalculateMeasureWindow.class and /dev/null differ
diff --git a/bin/EditSongInfoWindow$1.class b/bin/EditSongInfoWindow$1.class
deleted file mode 100644
index 4986e1b32925660f7de325413d859baa940504b7..0000000000000000000000000000000000000000
Binary files a/bin/EditSongInfoWindow$1.class and /dev/null differ
diff --git a/bin/EditSongInfoWindow$2.class b/bin/EditSongInfoWindow$2.class
deleted file mode 100644
index 905d01817c2051921ac52961a21b95f220a87d67..0000000000000000000000000000000000000000
Binary files a/bin/EditSongInfoWindow$2.class and /dev/null differ
diff --git a/bin/EditSongInfoWindow$3.class b/bin/EditSongInfoWindow$3.class
deleted file mode 100644
index d9ab536590599441381731621c23b7d4f7ef85b4..0000000000000000000000000000000000000000
Binary files a/bin/EditSongInfoWindow$3.class and /dev/null differ
diff --git a/bin/EditSongInfoWindow$4.class b/bin/EditSongInfoWindow$4.class
deleted file mode 100644
index 3ae28f7faa6ed709e522a372b340a0b7ee3c8c6e..0000000000000000000000000000000000000000
Binary files a/bin/EditSongInfoWindow$4.class and /dev/null differ
diff --git a/bin/EditSongInfoWindow$5.class b/bin/EditSongInfoWindow$5.class
deleted file mode 100644
index ee6a9f9a4ccc023253511c654b9c4ccf03e08335..0000000000000000000000000000000000000000
Binary files a/bin/EditSongInfoWindow$5.class and /dev/null differ
diff --git a/bin/EditSongInfoWindow.class b/bin/EditSongInfoWindow.class
deleted file mode 100644
index 1c405b1fec07b7904bc44fb695b80a1401dd4890..0000000000000000000000000000000000000000
Binary files a/bin/EditSongInfoWindow.class and /dev/null differ
diff --git a/bin/IntegerOverflowException.class b/bin/IntegerOverflowException.class
deleted file mode 100644
index 851c7a6ff1fedef245f2983baaab3c2cff584264..0000000000000000000000000000000000000000
Binary files a/bin/IntegerOverflowException.class and /dev/null differ
diff --git a/bin/InvalidPercentageException.class b/bin/InvalidPercentageException.class
deleted file mode 100644
index de8f77a49d8553f55aa1c282030ef2e4713c447e..0000000000000000000000000000000000000000
Binary files a/bin/InvalidPercentageException.class and /dev/null differ
diff --git a/bin/Main.class b/bin/Main.class
deleted file mode 100644
index fe22c6277a3055615255e8f4bbd64650d3199d57..0000000000000000000000000000000000000000
Binary files a/bin/Main.class and /dev/null differ
diff --git a/bin/MainWindow$1.class b/bin/MainWindow$1.class
deleted file mode 100644
index 5ddd441fcead51d469e3c524a3529bdde7277035..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$1.class and /dev/null differ
diff --git a/bin/MainWindow$10.class b/bin/MainWindow$10.class
deleted file mode 100644
index 7ba49bc8c539d7a694ebccdb75bef7e80cf8026b..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$10.class and /dev/null differ
diff --git a/bin/MainWindow$2.class b/bin/MainWindow$2.class
deleted file mode 100644
index 6293c8834ca1c95205f9496a31ce365421387db1..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$2.class and /dev/null differ
diff --git a/bin/MainWindow$3.class b/bin/MainWindow$3.class
deleted file mode 100644
index 8c02da5f2194bc20eb4e27478e9b1d0094e2d61d..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$3.class and /dev/null differ
diff --git a/bin/MainWindow$4.class b/bin/MainWindow$4.class
deleted file mode 100644
index 6f59a2622a9cf70be8ca104c1105fab0feb5b45f..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$4.class and /dev/null differ
diff --git a/bin/MainWindow$5.class b/bin/MainWindow$5.class
deleted file mode 100644
index 39d1976387e5a89b377466c3734c3adee3f22e0e..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$5.class and /dev/null differ
diff --git a/bin/MainWindow$6.class b/bin/MainWindow$6.class
deleted file mode 100644
index 9c71d465b26fcdf184b10e61fca81163c5265a59..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$6.class and /dev/null differ
diff --git a/bin/MainWindow$7.class b/bin/MainWindow$7.class
deleted file mode 100644
index 34e9b718e3ddb97df427bd20b88cfc7a74e878a0..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$7.class and /dev/null differ
diff --git a/bin/MainWindow$8.class b/bin/MainWindow$8.class
deleted file mode 100644
index f72ba2f3e5cfaa8feccb27f06a02f79732b76401..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$8.class and /dev/null differ
diff --git a/bin/MainWindow$9.class b/bin/MainWindow$9.class
deleted file mode 100644
index eafee05539a87b6b669160e7a455d488fa4a96c6..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$9.class and /dev/null differ
diff --git a/bin/MainWindow$Difficulty.class b/bin/MainWindow$Difficulty.class
deleted file mode 100644
index c4879ee049a15f6ae35f03bcf08b9bb11087dfda..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow$Difficulty.class and /dev/null differ
diff --git a/bin/MainWindow.class b/bin/MainWindow.class
deleted file mode 100644
index 290c539f50c8c64379a41a54337c4bc027eda09e..0000000000000000000000000000000000000000
Binary files a/bin/MainWindow.class and /dev/null differ
diff --git a/bin/PercentageOverException.class b/bin/PercentageOverException.class
deleted file mode 100644
index bb46ba260ea2680edd5b9d0ef8ba29a77fb7d468..0000000000000000000000000000000000000000
Binary files a/bin/PercentageOverException.class and /dev/null differ
diff --git a/bin/Uusi tekstiasiakirja.bat b/bin/Uusi tekstiasiakirja.bat
deleted file mode 100644
index 6efc1cd5c6ccc49889b1ed6b86ad52fdd13daf0d..0000000000000000000000000000000000000000
--- a/bin/Uusi tekstiasiakirja.bat	
+++ /dev/null
@@ -1,2 +0,0 @@
-javac Main.java
-pause
\ No newline at end of file
diff --git a/images/note.png b/images/note.png
deleted file mode 100644
index 69487768eacafd9170e7675fb5ab4ddf5f449147..0000000000000000000000000000000000000000
Binary files a/images/note.png and /dev/null differ
diff --git a/images/note_lit.png b/images/note_lit.png
deleted file mode 100644
index 4b4918fe1f9c331797711ead2ca04e74b39b4f40..0000000000000000000000000000000000000000
Binary files a/images/note_lit.png and /dev/null differ
diff --git a/images/notes.png b/images/notes.png
deleted file mode 100644
index 0b7834b2a04f9a5fd50d355cfce92d939d816558..0000000000000000000000000000000000000000
Binary files a/images/notes.png and /dev/null differ
diff --git a/images/notes_lit.png b/images/notes_lit.png
deleted file mode 100644
index 7f2d29daad9901172770ac0534b4d31d3cd96537..0000000000000000000000000000000000000000
Binary files a/images/notes_lit.png and /dev/null differ
diff --git a/lib/jaco-mp3-player-0.9.4.jar b/lib/jaco-mp3-player-0.9.4.jar
deleted file mode 100644
index 08b8e8f4664b5c9f902d60b05fc403bc22168d3c..0000000000000000000000000000000000000000
Binary files a/lib/jaco-mp3-player-0.9.4.jar and /dev/null differ
diff --git a/puuttuvat toteutukset.txt b/puuttuvat toteutukset.txt
deleted file mode 100644
index 3517458f81fd1196e93d66e91562134b06f0d321..0000000000000000000000000000000000000000
--- a/puuttuvat toteutukset.txt	
+++ /dev/null
@@ -1,3 +0,0 @@
--tyhjien säkeiden määrän laskeminen olemassaolevasta tiedostosta
--tietovirran analysointi (mp3, ogg)
--säkeiden puolittaminen/jakaminen (helpommat vaikeusasteet)
\ No newline at end of file
diff --git a/src/AdjustBPMThread.java b/src/AdjustBPMThread.java
deleted file mode 100644
index 8cd5a7f7ad91945aa25c14e07011b28c8fe88737..0000000000000000000000000000000000000000
--- a/src/AdjustBPMThread.java
+++ /dev/null
@@ -1,3 +0,0 @@
-public class AdjustBPMThread extends Thread{
-    
-}
diff --git a/src/AdjustBPMWindow.java b/src/AdjustBPMWindow.java
deleted file mode 100644
index 2d23dd21ea1b92860472619bdd139ffa2d47920b..0000000000000000000000000000000000000000
--- a/src/AdjustBPMWindow.java
+++ /dev/null
@@ -1,488 +0,0 @@
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.event.*;
-import javax.swing.SwingUtilities.*;
-import javax.swing.border.Border;
-import javax.sound.sampled.*;
-import java.net.URL;
-import java.security.Key;
-import java.io.*;
-import java.net.MalformedURLException;
-import jaco.mp3.player.MP3Player;
-
-public class AdjustBPMWindow {
-
-    JFrame adjustBPMWindow;
-    JLabel bpmTxt, offsetTxt, checkElement, delayMsTxt, delayNanoTxt, keyTimingTxt, keyTimingValTxt, keyTimingValTxt2, keyTimingValTxt3, fileNotFoundTxt;
-    JTextArea bpmTxtArea, offsetTxtArea;
-    JButton setButton, cancelButton, playButton, stopButton;
-    TimingThread thread1 = new TimingThread();
-    PlaySoundThread thread2 = new PlaySoundThread();
-    UpdateIconThread thread3 = new UpdateIconThread();
-    boolean checkElementStopped = false, threadRunning = false;
-    int offsetus, offsetusInvert;
-    long g_correct_nanoTime, g_correctDelay;
-    Clip clip;
-    MP3Player player;
-
-    public AdjustBPMWindow() {
-
-        adjustBPMWindow = new JFrame();
-        adjustBPMWindow.setVisible(false);
-        adjustBPMWindow.setBounds(MainWindow.ikkuna.getBounds().x+100, MainWindow.ikkuna.getBounds().y+100, 500, 400);
-        adjustBPMWindow.setLayout(null);
-        adjustBPMWindow.setResizable(false);
-        adjustBPMWindow.setTitle("Adjust BPM and Offset");
-        adjustBPMWindow.setFocusable(true);
-
-        checkElement = new JLabel(new ImageIcon("images/notes.png"));
-        checkElement.setVisible(true);
-        checkElement.setBounds(120, 80, 256, 64);
-
-        delayMsTxt = new JLabel("Delay:");
-        delayMsTxt.setVisible(true);
-        delayMsTxt.setBounds(120, 60, 256, 20);
-
-        delayNanoTxt = new JLabel("Delay:");
-        delayNanoTxt.setVisible(true);
-        delayNanoTxt.setBounds(120, 40, 256, 20);
-
-        keyTimingTxt = new JLabel("Stopped");
-        keyTimingTxt.setVisible(true);
-        keyTimingTxt.setBounds(10, 80, 256, 20);
-
-        keyTimingValTxt = new JLabel("Correct Time");
-        keyTimingValTxt.setVisible(false);
-        keyTimingValTxt.setBounds(10, 40, 256, 20);
-
-        keyTimingValTxt2 = new JLabel("Time at Key Press");
-        keyTimingValTxt2.setVisible(false);
-        keyTimingValTxt2.setBounds(10, 60, 256, 20);
-
-        keyTimingValTxt3 = new JLabel("Result");
-        keyTimingValTxt3.setVisible(true);
-        keyTimingValTxt3.setBounds(10, 100, 256, 20);
-
-        playButton = new JButton("Play");
-        playButton.setVisible(true);
-        playButton.setBounds(70, 180, 170, 30);
-        playButton.addKeyListener(new ArrowKeyListener());
-        playButton.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    checkValues();
-                    checkElementStopped = false;
-
-                    keyTimingTxt.setText("Press Arrow Keys!");
-                }
-            }
-        });
-
-        stopButton = new JButton("Stop");
-        stopButton.setVisible(true);
-        stopButton.setBounds(240, 180, 170, 30);
-        stopButton.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    checkElementStopped = true;
-                    player.stop();
-                    threadRunning = false;
-
-                    keyTimingTxt.setText("Stopped");
-                    keyTimingValTxt.setText("Correct Time");
-                    keyTimingValTxt2.setText("Time at key Press");
-                    keyTimingValTxt3.setText("Result");
-                }
-            }
-        });
-
-        bpmTxt = new JLabel("BPM");
-        bpmTxt.setVisible(true);
-        bpmTxt.setBounds(20, 220, 210, 20);
-
-        bpmTxtArea = new JTextArea(MainWindow.mainBPM);
-        bpmTxtArea.setVisible(true);
-        bpmTxtArea.setBounds(20, 240, 210, 20);
-        bpmTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        offsetTxt = new JLabel("Offset");
-        offsetTxt.setVisible(true);
-        offsetTxt.setBounds(250, 220, 210, 20);
-
-        offsetTxtArea = new JTextArea(MainWindow.mainOffset);
-        offsetTxtArea.setVisible(true);
-        offsetTxtArea.setBounds(250, 240, 210, 20);
-        offsetTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        setButton = new JButton("Set");
-        setButton.setVisible(true);
-        setButton.setBounds(20, 300, 210, 30);
-        setButton.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    try {
-                        Double.parseDouble(bpmTxtArea.getText());
-                        Double.parseDouble(offsetTxtArea.getText());
-                        MainWindow.mainBPM = bpmTxtArea.getText();
-                        MainWindow.mainOffset = offsetTxtArea.getText();
-                        adjustBPMWindow.setVisible(false);
-
-                        int i = MainWindow.mainSongInfo.indexOf("#BPMS");
-                        String strStart;
-                        String strEnd;
-                        if (i == -1) {
-                            
-                        }
-                        else {
-                            //i += 12;
-                            strStart = MainWindow.mainSongInfo.substring(0, i);
-                            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                                i++;
-                            }
-                            strEnd = MainWindow.mainSongInfo.substring(i);
-                            MainWindow.mainSongInfo = strStart + "#BPMS:0.000=" + MainWindow.mainBPM + strEnd;
-                        }
-
-                        i = MainWindow.mainSongInfo.indexOf("#OFFSET");
-                        if (i == -1) {
-                            
-                        }
-                        else {
-                            //i += 12;
-                            strStart = MainWindow.mainSongInfo.substring(0, i);
-                            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                                i++;
-                            }
-                            strEnd = MainWindow.mainSongInfo.substring(i);
-                            MainWindow.mainSongInfo = strStart + "#OFFSET=" + MainWindow.mainOffset + strEnd;
-                        }
-                    }
-                    catch (NumberFormatException nfe) {
-                        JOptionPane.showMessageDialog(null, "BPM and offset must be a float or an integer number", "Number format error", JOptionPane.ERROR_MESSAGE);
-                    }
-                    finally {
-                        checkElementStopped = true;
-                        player.stop();
-                    }
-                }
-            }
-        });
-
-        cancelButton = new JButton("Cancel");
-        cancelButton.setVisible(true);
-        cancelButton.setBounds(250, 300, 210, 30);
-        cancelButton.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    adjustBPMWindow.setVisible(false);
-                    checkElementStopped = true;
-                    player.stop();
-                }
-            }
-        });
-
-        fileNotFoundTxt = new JLabel("");
-        fileNotFoundTxt.setVisible(true);
-        fileNotFoundTxt.setBounds(20, 20, 210, 20);
-
-        adjustBPMWindow.add(bpmTxt);
-        adjustBPMWindow.add(bpmTxtArea);
-        adjustBPMWindow.add(offsetTxt);
-        adjustBPMWindow.add(offsetTxtArea);
-        adjustBPMWindow.add(checkElement);
-        adjustBPMWindow.add(delayMsTxt);
-        adjustBPMWindow.add(delayNanoTxt);
-        adjustBPMWindow.add(keyTimingTxt);
-        adjustBPMWindow.add(keyTimingValTxt);
-        adjustBPMWindow.add(keyTimingValTxt2);
-        adjustBPMWindow.add(keyTimingValTxt3);
-        adjustBPMWindow.add(playButton);
-        adjustBPMWindow.add(stopButton);
-        adjustBPMWindow.add(setButton);
-        adjustBPMWindow.add(cancelButton);
-
-        adjustBPMWindow.revalidate();
-        adjustBPMWindow.repaint();
-    }
-
-    void checkValues() {
-        try {
-            double bpm = Double.parseDouble(bpmTxtArea.getText());
-            double offset = Double.parseDouble(offsetTxtArea.getText());
-            offsetus = (int)(offset*1000000);
-            offsetusInvert = offsetus*-1;
-
-            if (!threadRunning) {
-                threadRunning = true;
-                //System.out.println(offset);
-                //System.out.println(offsetus);
-                
-                thread1 = new TimingThread();
-                thread1.start();
-                thread2 = new PlaySoundThread();
-                thread2.start();
-                thread3 = new UpdateIconThread();
-                thread3.start();
-                
-            }
-        }
-        catch (NumberFormatException e) {
-            JOptionPane.showMessageDialog(null, "Invalid Input. Input must be positive integer number.\n\nSet 0 to empty fields.", "Number format error", JOptionPane.ERROR_MESSAGE);
-        }
-    }
-
-    public static void busyWaitMicros(long micros){
-        long waitUntil = System.nanoTime() + (micros * 1_000);
-        while(waitUntil > System.nanoTime()){
-            ;
-        }
-    }
-
-    private class ArrowKeyListener implements KeyListener {
-
-        @Override
-        public void keyTyped(KeyEvent e) {
- 
-            switch (e.getKeyCode()) {
-                case KeyEvent.VK_LEFT:
-                    System.out.println("Left Arrow Key Typed");
-                    break;
-                case KeyEvent.VK_RIGHT:
-                    System.out.println("Right Arrow Key Typed");
-                    break;
-                case KeyEvent.VK_DOWN:
-                    System.out.println("Down Arrow Key Typed");
-                    break;
-                case KeyEvent.VK_UP:
-                    System.out.println("Up Arrow Key Typed");
-                    break;
-                default:
-                    System.out.println("Other Key Typed");
-                    break;
-            }
-            
-        }
-
-        @Override
-        public void keyPressed(KeyEvent e) {
-            
-            long correctNanoTime = g_correct_nanoTime/1_000_000;
-            long pressedNanoTime = System.nanoTime()/1_000_000;
-            long correctDelay = g_correctDelay/1_000_000;
-            long diff = pressedNanoTime - correctNanoTime;
-            long diffNeg;
-            keyTimingValTxt.setText("" + correctNanoTime);
-            keyTimingValTxt2.setText("" + pressedNanoTime);
-
-            if (diff == 0) {
-                keyTimingValTxt3.setText("Exact!");
-            }
-            else {
-                if (diff > correctDelay/2) {
-                    diffNeg = correctDelay - diff;
-                    keyTimingValTxt3.setText("" + diffNeg + " ms early");
-                }
-                else {
-                    keyTimingValTxt3.setText("" + diff + " ms late");
-                }
-            }
-
-            switch (e.getKeyCode()) {
-                case KeyEvent.VK_LEFT:
-                    System.out.println("Left Arrow Key Pressed");
-                    keyTimingTxt.setText("Left");
-                    break;
-                case KeyEvent.VK_RIGHT:
-                    System.out.println("Right Arrow Key Pressed");
-                    keyTimingTxt.setText("Right");
-                    break;
-                case KeyEvent.VK_DOWN:
-                    System.out.println("Down Arrow Key Pressed");
-                    keyTimingTxt.setText("Down");
-                    break;
-                case KeyEvent.VK_UP:
-                    System.out.println("Up Arrow Key Pressed");
-                    keyTimingTxt.setText("Up");
-                    break;
-                default:
-                    System.out.println("Other Key Pressed");
-                    keyTimingTxt.setText("Other");
-                    break;
-            }
-            
-        }
-
-        @Override
-        public void keyReleased(KeyEvent e) {
-            
-            switch (e.getKeyCode()) {
-                case KeyEvent.VK_LEFT:
-                    System.out.println("Left Arrow Key Released");
-                    break;
-                case KeyEvent.VK_RIGHT:
-                    System.out.println("Right Arrow Key Released");
-                    break;
-                case KeyEvent.VK_DOWN:
-                    System.out.println("Down Arrow Key Released");
-                    break;
-                case KeyEvent.VK_UP:
-                    System.out.println("Up Arrow Key Released");
-                    break;
-                default:
-                    System.out.println("Other Key Released");
-                    break;
-            }
-            
-        }
-
-    }
-
-    private class TimingThread extends Thread {
-
-        void updateTimings(int usec) {
-            long timeStart = System.nanoTime();
-            long timeEnd = System.nanoTime();
-            long timeDiff;
-            double realBPM;
-                
-            g_correct_nanoTime = timeStart;
-            busyWaitMicros(usec);
-            timeEnd = System.nanoTime();
-
-            timeDiff = timeEnd - timeStart;
-            g_correctDelay = timeDiff;
-            double timeDiffFloat = (double)timeDiff;
-            realBPM = (1000000000/timeDiffFloat)*60;
-            delayMsTxt.setText("Delay: " + timeDiff/1000000 + " ms; " + "Real BPM: " + realBPM);
-            delayNanoTxt.setText("Delay: " + timeDiff + " ns");
-
-        }
-
-        void checkValuesForTiming() {
-            try {
-                double bpm = Double.parseDouble(bpmTxtArea.getText());
-                double offset = Double.parseDouble(offsetTxtArea.getText());
-                if (offsetus > 0) {
-                    busyWaitMicros(offsetus);
-                }
-
-                double bps = bpm / 60;
-                int uspb = (int)(1000000 / bps);
-
-                while (!checkElementStopped) {
-                    updateTimings(uspb);
-                }
-            }
-            catch (NumberFormatException e) {
-                JOptionPane.showMessageDialog(null, "Invalid Input. Input must be positive integer number.\n\nSet 0 to empty fields.", "Number format error", JOptionPane.ERROR_MESSAGE);
-            }
-        }
-
-        public static void busyWaitMicros(long micros){
-            long waitUntil = System.nanoTime() + (micros * 1_000);
-            while(waitUntil > System.nanoTime()){
-                ;
-            }
-        }
-        
-        public void run() {
-            checkValuesForTiming();
-        }
-    }
-
-    private class UpdateIconThread extends Thread {
-        
-        void updateTestLabelPosition(int mspbHold, int mspbRel) {
-                
-            checkElement.setIcon(new ImageIcon("images/notes_lit.png"));
-            busyWaitMicros(mspbHold);
-            checkElement.setIcon(new ImageIcon("images/notes.png"));
-            busyWaitMicros(mspbRel);
-        }
-
-        void checkValuesForIcon() {
-            try {
-                double bpm = Double.parseDouble(bpmTxtArea.getText());
-                double offset = Double.parseDouble(offsetTxtArea.getText());
-                if (offsetus > 0) {
-                    busyWaitMicros(offsetus);
-                }
-
-                double bps = bpm / 60;
-                //int mspb = (int)(1000 / bps);
-                int uspb = (int)(1000000 / bps);
-                //int mspbHold = 100;
-                int uspbHold = 100000;
-                if (uspb < 100000) {
-                    uspbHold = uspb/2;
-                }
-                //int mspbRel = mspb - mspbHold;
-                int uspbRel = uspb - uspbHold;
-
-                while (!checkElementStopped) {
-                    updateTestLabelPosition(uspbHold, uspbRel);
-                }
-            }
-            catch (NumberFormatException e) {
-                JOptionPane.showMessageDialog(null, "Invalid Input. Input must be positive integer number.\n\nSet 0 to empty fields.", "Number format error", JOptionPane.ERROR_MESSAGE);
-            }
-        }
-
-        public static void busyWaitMicros(long micros){
-            long waitUntil = System.nanoTime() + (micros * 1_000);
-            while(waitUntil > System.nanoTime()){
-                ;
-            }
-        }
-        public void run() {
-            checkValuesForIcon();
-        }
-    }
-
-    private class PlaySoundThread extends Thread {
-
-        void playWave() {
-            try {
-                // Open an audio input stream.
-                //URL url = this.getClass().getClassLoader().getResource("bob.mp3");
-                File f = new File("bob.wav");
-                AudioInputStream audioIn = AudioSystem.getAudioInputStream(f.toURI().toURL());
-                // Get a sound clip resource.
-                clip = AudioSystem.getClip();
-                // Open audio clip and load samples from the audio input stream.
-                clip.open(audioIn);
-                clip.start();
-             } catch (UnsupportedAudioFileException e) {
-                e.printStackTrace();
-             } catch (IOException e) {
-                e.printStackTrace();
-             } catch (LineUnavailableException e) {
-                e.printStackTrace();
-             }
-        }
-
-        void playMp3() throws FileNotFoundException{
-            player = new MP3Player(MainWindow.audioFile);
-            player.play();
-        }
-
-        public void run() {
-            //playWave();
-            if (offsetus < 0) {
-                busyWaitMicros(offsetusInvert);
-            }
-            try{
-                fileNotFoundTxt.setText("");
-                playMp3();
-            }
-            catch (FileNotFoundException e) {
-                fileNotFoundTxt.setText("File " + MainWindow.audioFile.getName() + " was not found");
-            }
-        }
-    }
-}
diff --git a/src/CalculateMeasureWindow.java b/src/CalculateMeasureWindow.java
deleted file mode 100644
index f399069c3009a7f0e53c9abb94f2fab50d8f4e8a..0000000000000000000000000000000000000000
--- a/src/CalculateMeasureWindow.java
+++ /dev/null
@@ -1,159 +0,0 @@
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.event.*;
-import javax.swing.SwingUtilities.*;
-import javax.swing.border.Border;
-
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.*;
-import java.io.IOException;
-import java.util.Random;
-import java.util.Scanner;
-
-public class CalculateMeasureWindow {
-    
-    JFrame calculateMeasureWindow;
-    JLabel songLenTxt, songLenMinTxt, songLenSecTxt, bpmTxt, resultTxt;
-    JTextArea songLenMinTxtArea, songLenSecTxtArea, bpmTxtArea, resultTxtArea;
-    JButton calculateButton, setButton, cancelButton;
-
-    public CalculateMeasureWindow() {
-        
-        calculateMeasureWindow = new JFrame();
-        calculateMeasureWindow.setVisible(false);
-        calculateMeasureWindow.setBounds(100, 100, 500, 400);
-        calculateMeasureWindow.setLayout(null);
-        calculateMeasureWindow.setResizable(false);
-        calculateMeasureWindow.setTitle("Calculate Measures");
-
-        songLenTxt = new JLabel("Song Length", SwingConstants.CENTER);
-        songLenTxt.setVisible(true);
-        songLenTxt.setBounds(20, 30, 440, 20);
-        
-        songLenMinTxt = new JLabel("Minutes");
-        songLenMinTxt.setVisible(true);
-        songLenMinTxt.setBounds(20, 60, 210, 20);
-
-        songLenMinTxtArea = new JTextArea();
-        songLenMinTxtArea.setVisible(true);
-        songLenMinTxtArea.setBounds(20, 80, 210, 20);
-        songLenMinTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        songLenSecTxt = new JLabel("Seconds");
-        songLenSecTxt.setVisible(true);
-        songLenSecTxt.setBounds(250, 60, 210, 20);
-
-        songLenSecTxtArea = new JTextArea();
-        songLenSecTxtArea.setVisible(true);
-        songLenSecTxtArea.setBounds(250, 80, 210, 20);
-        songLenSecTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        bpmTxt = new JLabel("BPM", SwingConstants.CENTER);
-        bpmTxt.setVisible(true);
-        bpmTxt.setBounds(20, 120, 440, 20);
-
-        bpmTxtArea = new JTextArea();
-        bpmTxtArea.setVisible(true);
-        bpmTxtArea.setBounds(20, 140, 440, 20);
-        bpmTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        resultTxt = new JLabel("Measures", SwingConstants.CENTER);
-        resultTxt.setVisible(true);
-        resultTxt.setBounds(20, 220, 440, 20);
-
-        resultTxtArea = new JTextArea();
-        resultTxtArea.setVisible(true);
-        resultTxtArea.setBounds(20, 240, 450, 20);
-
-        calculateButton = new JButton("Calculate");
-        calculateButton.setVisible(true);
-        calculateButton.setBounds(70, 180, 340, 30);
-        calculateButton.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    checkValues();
-                }
-            }
-        });
-
-        setButton = new JButton("Set");
-        setButton.setVisible(true);
-        setButton.setBounds(20, 300, 210, 30);
-        setButton.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    MainWindow.msrTxtField.setText(resultTxtArea.getText());
-                    calculateMeasureWindow.setVisible(false);
-                }
-            }
-        });
-
-        cancelButton = new JButton("Cancel");
-        cancelButton.setVisible(true);
-        cancelButton.setBounds(250, 300, 210, 30);
-        cancelButton.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    calculateMeasureWindow.setVisible(false);
-                }
-            }
-        });
-        
-        calculateMeasureWindow.add(songLenTxt);
-        calculateMeasureWindow.add(songLenMinTxt);
-        calculateMeasureWindow.add(songLenMinTxtArea);
-        calculateMeasureWindow.add(songLenSecTxt);
-        calculateMeasureWindow.add(songLenSecTxtArea);
-        calculateMeasureWindow.add(bpmTxt);
-        calculateMeasureWindow.add(bpmTxtArea);
-        calculateMeasureWindow.add(resultTxt);
-        calculateMeasureWindow.add(resultTxtArea);
-        calculateMeasureWindow.add(calculateButton);
-        calculateMeasureWindow.add(setButton);
-        calculateMeasureWindow.add(cancelButton);
-
-        calculateMeasureWindow.revalidate();
-        calculateMeasureWindow.repaint();
-    }
-
-    void checkValues() {
-        try {
-            int lenMin = Integer.parseInt(songLenMinTxtArea.getText());
-            int lenSec = Integer.parseInt(songLenSecTxtArea.getText());
-            int bpm = Integer.parseInt(bpmTxtArea.getText());
-
-            if (lenMin < 0 || lenSec < 0 || bpm < 0) {
-                throw new NumberFormatException();
-            }
-            else {
-                calculateMeasures(lenMin, lenSec, bpm);
-            }
-        }
-        catch (NumberFormatException e) {
-            JOptionPane.showMessageDialog(null, "Invalid Input. Input must be positive integer number.\n\nSet 0 to empty fields.", "Number format error", JOptionPane.ERROR_MESSAGE);
-        }
-    }
-
-    void calculateMeasures(int min, int sec, int bpm) {
-        try {
-            double result = 0;
-            int resultInt = 0;
-            double timeinMinutes = (double)min + (double)sec / 60;
-            double beatCount = timeinMinutes * bpm;
-            result = beatCount / 4;
-            resultInt = (int)result;
-            resultTxtArea.setText("" + resultInt);
-            if (resultInt > 2147483646) {
-                throw new IntegerOverflowException();
-            }
-        }
-        catch (IntegerOverflowException e) {
-            JOptionPane.showMessageDialog(null, "Error: Overflow.", "Integer overflow error", JOptionPane.ERROR_MESSAGE);
-        }
-    }
-}
diff --git a/src/EditSongInfoWindow.java b/src/EditSongInfoWindow.java
deleted file mode 100644
index 1cb7df59e657d3059e3ec09aa4ced7cca9875f57..0000000000000000000000000000000000000000
--- a/src/EditSongInfoWindow.java
+++ /dev/null
@@ -1,766 +0,0 @@
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.event.*;
-import javax.swing.SwingUtilities.*;
-import javax.swing.border.Border;
-
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.*;
-import java.io.IOException;
-import java.util.Random;
-import java.util.Scanner;
-
-public class EditSongInfoWindow {
-    
-    JFrame editTextWindow, editTextWindowSimple;
-    JLabel edit, colorInfo, colorInfo2, colorInfo3, tip, tip2;
-    JTextArea editTextArea;
-    JButton okButton, cancelButton, editTextfileButton, okButtonSimple, cancelButtonSimple;
-    JScrollPane scrollableTxtPanel;
-    String songInfo;
-
-    JLabel titleTxt, subtitleTxt, artistTxt, titletranslitTxt, subtitletranslitTxt, artisttranslitTxt, genreTxt, creditTxt, bannerTxt, backgroundTxt;
-    JTextArea titleTxtArea, subtitleTxtArea, artistTxtArea, titletranslitTxtArea, subtitletranslitTxtArea, artisttranslitTxtArea, genreTxtArea, creditTxtArea, bannerTxtArea, backgroundTxtArea;
-    String title, subtitle, artist, titletranslit, subtitletranslit, artisttranslit, genre, credit, banner, background;
-    JLabel lyricspathTxt, cdtitleTxt, musicTxt, offsetTxt, samplestartTxt, samplelengthTxt, lastbeatTxt, selectableTxt, bpmsTxt, stopsTxt, bgchangesTxt, keysoundsTxt;
-    JTextArea lyricspathTxtArea, cdtitleTxtArea, musicTxtArea, offsetTxtArea, samplestartTxtArea, samplelengthTxtArea, lastbeatTxtArea, selectableTxtArea, bpmsTxtArea, stopsTxtArea, bgchangesTxtArea, keysoundsTxtArea;
-    String lyricspath, cdtitle, music, offset, samplestart, samplelength, lastbeat, selectable, bpms, stops, bgchanges, keysounds;
-
-    EditSongInfoWindow(String songData) {
-        
-        editTextWindow = new JFrame();
-        editTextWindow.setVisible(false);
-        editTextWindow.setBounds(MainWindow.ikkuna.getBounds().x+100, MainWindow.ikkuna.getBounds().y+10, 500, 900);
-        editTextWindow.setLayout(null);
-        editTextWindow.setResizable(false);
-        editTextWindow.setTitle("Edit Song Info");
-
-        editTextWindowSimple = new JFrame();
-        editTextWindowSimple.setVisible(false);
-        editTextWindowSimple.setBounds(editTextWindow.getBounds().x+20, editTextWindow.getBounds().y+100, 500, 560);
-        editTextWindowSimple.setLayout(null);
-        editTextWindowSimple.setResizable(false);
-        editTextWindowSimple.setTitle("Edit Song Info");
-
-        edit = new JLabel("Edit Song Info");
-        edit.setBounds(20, 10, 460, 20);
-        edit.setVisible(true);
-        
-        editTextArea = new JTextArea();
-        editTextArea.setBounds(20, 30, 440, 380);
-        editTextArea.setVisible(true);
-        editTextArea.setText(songData);
-        
-        scrollableTxtPanel = new JScrollPane(editTextArea);
-        scrollableTxtPanel.setBounds(20, 30, 440, 380);
-        scrollableTxtPanel.setVisible(true);
-        scrollableTxtPanel.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
-        scrollableTxtPanel.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
-        //scrollableTxtPanel.add(editTextArea);
-        
-
-        colorInfo = new JLabel("Red: Necessary");
-        colorInfo.setBounds(20, 680, 460, 20);
-        colorInfo.setVisible(true);
-
-        colorInfo2 = new JLabel("Blue: Important");
-        colorInfo2.setBounds(20, 700, 460, 20);
-        colorInfo2.setVisible(true);
-
-        colorInfo3 = new JLabel("Black: Non-essential");
-        colorInfo3.setBounds(20, 720, 460, 20);
-        colorInfo3.setVisible(true);
-
-        okButton = new JButton("OK");
-        okButton.setBounds(20, 820, 210, 30);
-        okButton.setVisible(true);
-        okButton.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    saveSongInfo();
-                    editTextWindow.setVisible(false);
-                }
-            }
-        });
-
-        cancelButton = new JButton("Cancel");
-        cancelButton.setBounds(250, 820, 210, 30);
-        cancelButton.setVisible(true);
-        cancelButton.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    editTextWindow.setVisible(false);
-                }
-            }
-        });
-
-        editTextfileButton = new JButton("Edit Text in File");
-        editTextfileButton.setBounds(20, 780, 440, 30);
-        editTextfileButton.setVisible(true);
-        editTextfileButton.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    editTextWindow.setVisible(false);
-                    editTextWindowSimple.setVisible(true);
-                }
-            }
-        });
-
-        tip = new JLabel("Tip: If you mess up the file, you can create a fresh one by selecting");
-        tip.setBounds(20, 430, 440, 20);
-        tip.setVisible(true);
-
-        tip2 = new JLabel("Create using audio file");
-        tip2.setBounds(20, 450, 440, 20);
-        tip2.setVisible(true);
-
-        okButtonSimple = new JButton("OK");
-        okButtonSimple.setBounds(20, 480, 210, 30);
-        okButtonSimple.setVisible(true);
-        okButtonSimple.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    MainWindow.mainSongInfo = editTextArea.getText();
-                    setSongInfoValues();
-                    editTextWindow.setVisible(true);
-                    editTextWindowSimple.setVisible(false);
-                }
-            }
-        });
-
-        cancelButtonSimple = new JButton("Cancel");
-        cancelButtonSimple.setBounds(250, 480, 210, 30);
-        cancelButtonSimple.setVisible(true);
-        cancelButtonSimple.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    editTextWindow.setVisible(true);
-                    editTextWindowSimple.setVisible(false);
-                }
-            }
-        });
-
-
-        titleTxt = new JLabel("Title");
-        titleTxt.setVisible(true);
-        titleTxt.setBounds(20, 20, 200, 20);
-        
-        titleTxtArea = new JTextArea();
-        titleTxtArea.setVisible(true);
-        titleTxtArea.setBounds(20, 40, 200, 20);
-        titleTxtArea.setBorder(BorderFactory.createLineBorder(Color.red, 1, false));
-
-        subtitleTxt = new JLabel("Subitle");
-        subtitleTxt.setVisible(true);
-        subtitleTxt.setBounds(20, 80, 200, 20);
-        
-        subtitleTxtArea = new JTextArea();
-        subtitleTxtArea.setVisible(true);
-        subtitleTxtArea.setBounds(20, 100, 200, 20);
-        subtitleTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        artistTxt = new JLabel("Artist");
-        artistTxt.setVisible(true);
-        artistTxt.setBounds(20, 140, 200, 20);
-
-        artistTxtArea = new JTextArea();
-        artistTxtArea.setVisible(true);
-        artistTxtArea.setBounds(20, 160, 200, 20);
-        artistTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        titletranslitTxt = new JLabel("Title Translit");
-        titletranslitTxt.setVisible(true);
-        titletranslitTxt.setBounds(20, 200, 200, 20);
-        
-        titletranslitTxtArea = new JTextArea();
-        titletranslitTxtArea.setVisible(true);
-        titletranslitTxtArea.setBounds(20, 220, 200, 20);
-        titletranslitTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        subtitletranslitTxt = new JLabel("Subitle Translit");
-        subtitletranslitTxt.setVisible(true);
-        subtitletranslitTxt.setBounds(20, 260, 200, 20);
-        
-        subtitletranslitTxtArea = new JTextArea();
-        subtitletranslitTxtArea.setVisible(true);
-        subtitletranslitTxtArea.setBounds(20, 280, 200, 20);
-        subtitletranslitTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        artisttranslitTxt = new JLabel("Artist Translit");
-        artisttranslitTxt.setVisible(true);
-        artisttranslitTxt.setBounds(20, 320, 200, 20);
-
-        artisttranslitTxtArea = new JTextArea();
-        artisttranslitTxtArea.setVisible(true);
-        artisttranslitTxtArea.setBounds(20, 340, 200, 20);
-        artisttranslitTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        genreTxt = new JLabel("Genre");
-        genreTxt.setVisible(true);
-        genreTxt.setBounds(20, 380, 200, 20);
-
-        genreTxtArea = new JTextArea();
-        genreTxtArea.setVisible(true);
-        genreTxtArea.setBounds(20, 400, 200, 20);
-        genreTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        creditTxt = new JLabel("Credit");
-        creditTxt.setVisible(true);
-        creditTxt.setBounds(20, 440, 200, 20);
-
-        creditTxtArea = new JTextArea();
-        creditTxtArea.setVisible(true);
-        creditTxtArea.setBounds(20, 460, 200, 20);
-        creditTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        bannerTxt = new JLabel("Banner");
-        bannerTxt.setVisible(true);
-        bannerTxt.setBounds(20, 500, 200, 20);
-
-        bannerTxtArea = new JTextArea();
-        bannerTxtArea.setVisible(true);
-        bannerTxtArea.setBounds(20, 520, 200, 20);
-        bannerTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        backgroundTxt = new JLabel("Background");
-        backgroundTxt.setVisible(true);
-        backgroundTxt.setBounds(20, 560, 200, 20);
-
-        backgroundTxtArea = new JTextArea();
-        backgroundTxtArea.setVisible(true);
-        backgroundTxtArea.setBounds(20, 580, 200, 20);
-        backgroundTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-
-        lyricspathTxt = new JLabel("Lyrics Path");
-        lyricspathTxt.setVisible(true);
-        lyricspathTxt.setBounds(20, 620, 200, 20);
-
-        lyricspathTxtArea = new JTextArea();
-        lyricspathTxtArea.setVisible(true);
-        lyricspathTxtArea.setBounds(20, 640, 200, 20);
-        lyricspathTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        cdtitleTxt = new JLabel("CD Title");
-        cdtitleTxt.setVisible(true);
-        cdtitleTxt.setBounds(250, 20, 200, 20);
-
-        cdtitleTxtArea = new JTextArea();
-        cdtitleTxtArea.setVisible(true);
-        cdtitleTxtArea.setBounds(250, 40, 200, 20);
-        cdtitleTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        musicTxt = new JLabel("Music");
-        musicTxt.setVisible(true);
-        musicTxt.setBounds(250, 80, 200, 20);
-
-        musicTxtArea = new JTextArea();
-        musicTxtArea.setVisible(true);
-        musicTxtArea.setBounds(250, 100, 200, 20);
-        musicTxtArea.setBorder(BorderFactory.createLineBorder(Color.red, 1, false));
-
-        offsetTxt = new JLabel("Offset");
-        offsetTxt.setVisible(true);
-        offsetTxt.setBounds(250, 140, 200, 20);
-
-        offsetTxtArea = new JTextArea();
-        offsetTxtArea.setVisible(true);
-        offsetTxtArea.setBounds(250, 160, 200, 20);
-        offsetTxtArea.setBorder(BorderFactory.createLineBorder(Color.blue, 1, false));
-
-        samplestartTxt = new JLabel("Sample Start");
-        samplestartTxt.setVisible(true);
-        samplestartTxt.setBounds(250, 200, 200, 20);
-
-        samplestartTxtArea = new JTextArea();
-        samplestartTxtArea.setVisible(true);
-        samplestartTxtArea.setBounds(250, 220, 200, 20);
-        samplestartTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        samplelengthTxt = new JLabel("Sample Length");
-        samplelengthTxt.setVisible(true);
-        samplelengthTxt.setBounds(250, 260, 200, 20);
-
-        samplelengthTxtArea = new JTextArea();
-        samplelengthTxtArea.setVisible(true);
-        samplelengthTxtArea.setBounds(250, 280, 200, 20);
-        samplelengthTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        lastbeatTxt = new JLabel("Last Beat");
-        lastbeatTxt.setVisible(true);
-        lastbeatTxt.setBounds(250, 320, 200, 20);
-
-        lastbeatTxtArea = new JTextArea();
-        lastbeatTxtArea.setVisible(true);
-        lastbeatTxtArea.setBounds(250, 340, 200, 20);
-        lastbeatTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        selectableTxt = new JLabel("Selectable");
-        selectableTxt.setVisible(true);
-        selectableTxt.setBounds(250, 380, 200, 20);
-
-        selectableTxtArea = new JTextArea();
-        selectableTxtArea.setVisible(true);
-        selectableTxtArea.setBounds(250, 400, 200, 20);
-        selectableTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        bpmsTxt = new JLabel("BPM");
-        bpmsTxt.setVisible(true);
-        bpmsTxt.setBounds(250, 440, 200, 20);
-
-        bpmsTxtArea = new JTextArea();
-        bpmsTxtArea.setVisible(true);
-        bpmsTxtArea.setBounds(250, 460, 200, 20);
-        bpmsTxtArea.setBorder(BorderFactory.createLineBorder(Color.blue, 1, false));
-
-        stopsTxt = new JLabel("Stops");
-        stopsTxt.setVisible(true);
-        stopsTxt.setBounds(250, 500, 200, 20);
-
-        stopsTxtArea = new JTextArea();
-        stopsTxtArea.setVisible(true);
-        stopsTxtArea.setBounds(250, 520, 200, 20);
-        stopsTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        bgchangesTxt = new JLabel("Background Changes");
-        bgchangesTxt.setVisible(true);
-        bgchangesTxt.setBounds(250, 560, 200, 20);
-
-        bgchangesTxtArea = new JTextArea();
-        bgchangesTxtArea.setVisible(true);
-        bgchangesTxtArea.setBounds(250, 580, 200, 20);
-        bgchangesTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-        keysoundsTxt = new JLabel("Key Sounds");
-        keysoundsTxt.setVisible(true);
-        keysoundsTxt.setBounds(250, 620, 200, 20);
-
-        keysoundsTxtArea = new JTextArea();
-        keysoundsTxtArea.setVisible(true);
-        keysoundsTxtArea.setBounds(250, 640, 200, 20);
-        keysoundsTxtArea.setBorder(BorderFactory.createLineBorder(Color.black, 1, false));
-
-
-
-        editTextWindowSimple.add(edit);
-        editTextWindowSimple.add(scrollableTxtPanel);
-        editTextWindowSimple.add(okButtonSimple);
-        editTextWindowSimple.add(cancelButtonSimple);
-        editTextWindowSimple.add(tip);
-        editTextWindowSimple.add(tip2);
-
-        editTextWindow.add(okButton);
-        editTextWindow.add(cancelButton);
-        editTextWindow.add(editTextfileButton);
-        editTextWindow.add(colorInfo);
-        editTextWindow.add(colorInfo2);
-        editTextWindow.add(colorInfo3);
-        
-        editTextWindow.add(titleTxt);
-        editTextWindow.add(titleTxtArea);
-        editTextWindow.add(subtitleTxt);
-        editTextWindow.add(subtitleTxtArea);
-        editTextWindow.add(artistTxt);
-        editTextWindow.add(artistTxtArea);
-        editTextWindow.add(titletranslitTxt);
-        editTextWindow.add(titletranslitTxtArea);
-        editTextWindow.add(subtitletranslitTxt);
-        editTextWindow.add(subtitletranslitTxtArea);
-        editTextWindow.add(artisttranslitTxt);
-        editTextWindow.add(artisttranslitTxtArea);
-        editTextWindow.add(genreTxt);
-        editTextWindow.add(genreTxtArea);
-        editTextWindow.add(creditTxt);
-        editTextWindow.add(creditTxtArea);
-        editTextWindow.add(bannerTxt);
-        editTextWindow.add(bannerTxtArea);
-        editTextWindow.add(backgroundTxt);
-        editTextWindow.add(backgroundTxtArea);
-        editTextWindow.add(lyricspathTxt);
-        editTextWindow.add(lyricspathTxtArea);
-        editTextWindow.add(cdtitleTxt);
-        editTextWindow.add(cdtitleTxtArea);
-        editTextWindow.add(musicTxt);
-        editTextWindow.add(musicTxtArea);
-        editTextWindow.add(offsetTxt);
-        editTextWindow.add(offsetTxtArea);
-        editTextWindow.add(samplestartTxt);
-        editTextWindow.add(samplestartTxtArea);
-        editTextWindow.add(samplelengthTxt);
-        editTextWindow.add(samplelengthTxtArea);
-        editTextWindow.add(lastbeatTxt);
-        editTextWindow.add(lastbeatTxtArea);
-        editTextWindow.add(selectableTxt);
-        editTextWindow.add(selectableTxtArea);
-        editTextWindow.add(bpmsTxt);
-        editTextWindow.add(bpmsTxtArea);
-        editTextWindow.add(stopsTxt);
-        editTextWindow.add(stopsTxtArea);
-        editTextWindow.add(bgchangesTxt);
-        editTextWindow.add(bgchangesTxtArea);
-        editTextWindow.add(keysoundsTxt);
-        editTextWindow.add(keysoundsTxtArea);
-
-        editTextWindow.revalidate();
-        editTextWindow.repaint();
-
-        this.songInfo = songData;
-
-        setSongInfoValues();
-    }
-
-    void setSongInfoValues() {
-        
-        int i = MainWindow.mainSongInfo.indexOf("#TITLE");
-        if (i == -1) {
-            titleTxtArea.setText("");
-        }
-        else {
-            i += 7;
-            title = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                title += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            titleTxtArea.setText(title);
-        }
-        
-        i = MainWindow.mainSongInfo.indexOf("#SUBTITLE");
-        if (i == -1){
-            subtitleTxtArea.setText("");
-        }
-        else {
-            i += 10;
-            subtitle = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                subtitle += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            subtitleTxtArea.setText(subtitle);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#ARTIST");
-        if (i == -1) {
-            artistTxtArea.setText("");
-        }
-        else {
-            i += 8;
-            artist = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                artist += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            artistTxtArea.setText(artist);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#TITLETRANSLIT");
-        if (i == -1) {
-            titletranslitTxtArea.setText("");
-        }
-        else {
-            i += 15;
-            titletranslit = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                titletranslit += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            titletranslitTxtArea.setText(titletranslit);
-        }
-        
-        i = MainWindow.mainSongInfo.indexOf("#SUBTITLETRANSLIT");
-        if (i == -1) {
-            subtitletranslitTxtArea.setText("");
-        }
-        else {
-            i += 18;
-            subtitletranslit = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                subtitletranslit += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            subtitletranslitTxtArea.setText(subtitletranslit);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#ARTISTTRANSLIT");
-        if (i == -1) {
-            artisttranslitTxtArea.setText("");
-        }
-        else {
-            i += 16;
-            artisttranslit = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                artisttranslit += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            artisttranslitTxtArea.setText(artisttranslit);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#GENRE");
-        if (i == -1) {
-            genreTxtArea.setText("");
-        }
-        else {
-            i += 7;
-            genre = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                genre += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            genreTxtArea.setText(genre);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#CREDIT");
-        if (i == -1) {
-            creditTxtArea.setText("");
-        }
-        else {
-            i += 8;
-            credit = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                credit += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            creditTxtArea.setText(credit);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#BANNER");
-        if (i == -1) {
-            bannerTxtArea.setText("");
-        }
-        else {
-            i += 8;
-            banner = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                banner += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            bannerTxtArea.setText(banner);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#BACKGROUND");
-        if (i == -1) {
-            backgroundTxtArea.setText("");
-        }
-        else {
-            i += 12;
-            background = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                background += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            backgroundTxtArea.setText(background);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#LYRICSPATH");
-        if (i == -1) {
-            lyricspathTxtArea.setText("");
-        }
-        else {
-            i += 12;
-            lyricspath = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                lyricspath += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            lyricspathTxtArea.setText(lyricspath);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#CDTITLE");
-        if (i == -1) {
-            cdtitleTxtArea.setText("");
-        }
-        else {
-            i += 9;
-            cdtitle = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                cdtitle += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            cdtitleTxtArea.setText(cdtitle);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#MUSIC");
-        if (i == -1) {
-            musicTxtArea.setText("");
-        }
-        else {
-            i += 7;
-            music = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                music += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            musicTxtArea.setText(music);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#OFFSET");
-        if (i == -1) {
-            offsetTxtArea.setText("");
-        }
-        else {
-            i += 8;
-            offset = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                offset += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            offsetTxtArea.setText(offset);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#SAMPLESTART");
-        if (i == -1) {
-            samplelengthTxtArea.setText("");
-        }
-        else {
-            i += 13;
-            samplestart = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                samplestart += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            samplestartTxtArea.setText(samplestart);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#SAMPLELENGTH");
-        if (i == -1) {
-            samplelengthTxtArea.setText("");
-        }
-        else {
-            i += 14;
-            samplelength = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                samplelength += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            samplelengthTxtArea.setText(samplelength);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#LASTBEAT");
-        if (i == -1) {
-            lastbeatTxtArea.setText("");
-        }
-        else {
-            i += 10;
-            lastbeat = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                lastbeat += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            lastbeatTxtArea.setText(lastbeat);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#SELECTABLE");
-        if (i == -1) {
-            selectableTxtArea.setText("");
-        }
-        else {
-            i += 12;
-            selectable = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                selectable += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            selectableTxtArea.setText(selectable);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#BPMS");
-        if (i == -1) {
-            bpmsTxtArea.setText("");
-        }
-        else {
-            i += 6;
-            bpms = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                bpms += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            bpmsTxtArea.setText(bpms);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#STOPS");
-        if (i == -1) {
-            stopsTxtArea.setText("");
-        }
-        else {
-            i += 7;
-            stops = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                stops += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            stopsTxtArea.setText(stops);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#BGCHANGES");
-        if (i == -1) {
-            bgchangesTxtArea.setText("");
-        }
-        else {
-            i += 11;
-            bgchanges = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                bgchanges += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            bgchangesTxtArea.setText(bgchanges);
-        }
-
-        i = MainWindow.mainSongInfo.indexOf("#KEYSOUNDS");
-        if (i == -1) {
-            keysoundsTxtArea.setText("");
-        }
-        else {
-            i += 11;
-            keysounds = "";
-            while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                keysounds += MainWindow.mainSongInfo.charAt(i);
-                i++;
-            }
-            keysoundsTxtArea.setText(keysounds);
-        }
-
-        //bpmsTxtArea.setText("0.000=" + MainWindow.mainBPM);
-        //offsetTxtArea.setText(MainWindow.mainOffset);
-
-        saveSongInfo();
-    }
-
-    void saveSongInfo() {
-        MainWindow.mainSongInfo =
-        "#TITLE:" + titleTxtArea.getText() + ";\n" +
-        "#SUBTITLE:" + subtitleTxtArea.getText() + ";\n" +
-        "#ARTIST:" + artistTxtArea.getText() + ";\n" +
-        "#TITLETRANSLIT:" + titletranslitTxtArea.getText() + ";\n" +
-        "#SUBTITLETRANSLIT:" + subtitletranslitTxtArea.getText() + ";\n" +
-        "#ARTISTTRANSLIT:" + artisttranslitTxtArea.getText() + ";\n" +
-        "#GENRE:" + genreTxtArea.getText() + ";\n" +
-        "#CREDIT:" + creditTxtArea.getText() + ";\n" +
-        "#BANNER:" + bannerTxtArea.getText() + ";\n" +
-        "#BACKGROUND:" + backgroundTxtArea.getText() + ";\n" +
-        "#LYRICSPATH:" + lyricspathTxtArea.getText() + ";\n" +
-        "#CDTITLE:" + cdtitleTxtArea.getText() + ";\n" +
-        "#MUSIC:" + musicTxtArea.getText() + ";\n" +
-        "#OFFSET:" + offsetTxtArea.getText() + ";\n" +
-        "#SAMPLESTART:" + samplestartTxtArea.getText() + ";\n" +
-        "#SAMPLELENGTH:" + samplelengthTxtArea.getText() + ";\n" +
-        "#LASTBEAT:" + lastbeatTxtArea.getText() + ";\n" +
-        "#SELECTABLE:" + selectableTxtArea.getText() + ";\n" +
-        "#BPMS:" + bpmsTxtArea.getText() + ";\n" +
-        "#STOPS:" + stopsTxtArea.getText() + ";\n" +
-        "#BGCHANGES:" + bgchangesTxtArea.getText() + ";\n" +
-        "#KEYSOUNDS:" + keysoundsTxtArea.getText() + ";\n";
-        MainWindow.mainBPM = bpmsTxtArea.getText().substring(6);
-        MainWindow.mainOffset = offsetTxtArea.getText();
-    }
-
-    String getSongInfo() {
-        return songInfo;
-    }
-}
diff --git a/src/IntegerOverflowException.java b/src/IntegerOverflowException.java
deleted file mode 100644
index be3dd4d188ec880e34837db451a7e51100208c11..0000000000000000000000000000000000000000
--- a/src/IntegerOverflowException.java
+++ /dev/null
@@ -1,3 +0,0 @@
-public class IntegerOverflowException extends Exception{
-    
-}
diff --git a/src/InvalidPercentageException.java b/src/InvalidPercentageException.java
deleted file mode 100644
index d4ba5406eff58e25fb78de120ac7b302a8246903..0000000000000000000000000000000000000000
--- a/src/InvalidPercentageException.java
+++ /dev/null
@@ -1,3 +0,0 @@
-public class InvalidPercentageException extends Exception{
-    
-}
diff --git a/src/Main.java b/src/Main.java
deleted file mode 100644
index d3316cd7041eb4723bb205f9c01d1e3dae82e848..0000000000000000000000000000000000000000
--- a/src/Main.java
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Main {
-    public static void main(String[] args) {
-        MainWindow.startMainWindow();
-    }
-}
diff --git a/src/MainWindow.java b/src/MainWindow.java
deleted file mode 100644
index 80343f71554f3ab7448c6040ea3a34280bd93976..0000000000000000000000000000000000000000
--- a/src/MainWindow.java
+++ /dev/null
@@ -1,1469 +0,0 @@
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.event.*;
-import javax.swing.filechooser.FileNameExtensionFilter;
-import javax.swing.SwingUtilities.*;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.*;
-import java.io.IOException;
-import java.util.Random;
-import java.util.Scanner;
-
-public class MainWindow {
-
-    static String mainSongInfo;
-    static String mainBPM;
-    static String mainOffset;
-
-    static JFrame ikkuna;
-    static JLabel begEmptyTxt, msrTxt, endEmptyTxt;
-    static JTextArea begEmptyTxtField, msrTxtField, endEmptyTxtField;
-    static JButton create;
-    static JLabel difficultyTxt, difficultyNoTxt, creatorTxt;
-    static JList<String> difficulty;
-    static JTextArea difficultyNoTxtField, creatorTxtField;
-    static JLabel noFileSign;
-
-    static JLabel beatsTxt, bStepsTxt, bStepsPcentTxt, bJumpsTxt, bJumpsPcentTxt, bHoldsTxt, bHoldsPcentTxt, bMinesTxt, bMinesPcentTxt;
-    static JLabel halfBeatsTxt, hbStepsTxt, hbStepsPcentTxt, hbJumpsTxt, hbJumpsPcentTxt, hbHoldsTxt, hbHoldsPcentTxt, hbMinesTxt, hbMinesPcentTxt;
-    static JLabel quarterBeatsTxt, qbStepsTxt, qbStepsPcentTxt, qbJumpsTxt, qbJumpsPcentTxt, qbHoldsTxt, qbHoldsPcentTxt, qbMinesTxt, qbMinesPcentTxt;
-    static JCheckBox bStepsEnabled, bJumpsEnabled, bHoldsEnabled, bMinesEnabled, hbStepsEnabled, hbJumpsEnabled, hbHoldsEnabled, hbMinesEnabled, qbStepsEnabled, qbJumpsEnabled, qbHoldsEnabled, qbMinesEnabled;
-    static JTextArea bStepsPcentTxtField, bJumpsPcentTxtField, bHoldsPcentTxtField, bMinesPcentTxtField, hbStepsPcentTxtField, hbJumpsPcentTxtField, hbHoldsPcentTxtField, hbMinesPcentTxtField, qbStepsPcentTxtField, qbJumpsPcentTxtField, qbHoldsPcentTxtField, qbMinesPcentTxtField;
-
-    static String[] difficulties = {"Beginner", "Easy", "Medium", "Hard", "Challenge", "Edit"};
-    static String[] difficultiesShown = {"Beginner (Novice)", "Easy", "Medium", "Hard", "Challenge (Expert)", "Edit (Custon name)"};
-    static int difficultyChoice;
-    static int difficultyNumber;
-    static short emptyMsrsBeginning, msrs, emptyMsrsEnd;
-    static byte stepPercentage, jumpPercentage, holdPercentage, minePercentage;
-    static byte halfStepPercentage, halfJumpPercentage, halfHoldPercentage, halfMinePercentage;
-    static byte quarterStepPercentage, quarterJumpPercentage, quarterHoldPercentage, quarterMinePercentage;
-    static String creator = "me";
-    static String songInfo;
-    static String foundChartsInfo = "";
-    static int foundCharts = 0;
-    static String[] chartData;
-    static String[] chartDataDifficultyInfo;
-    static int[] stepsInChart, jumpsInChart, handsInChart, minesInChart;
-    static String combinedStepfileData = "", combinedChartData = "";
-
-    static JMenuBar mb;
-    static JMenu file, edit, view, tools;
-    static JMenuItem open, createUsingAudioFile, saveFile;
-    static JMenuItem editSongInfo, calculateMeasures, adjustBPM;
-    static JMenuItem viewSongInfo, viewChartInfo;
-
-    static File stepFile;
-    static File audioFile;
-
-    String defaultEmptySongInfo = "#TITLE:;\n#SUBTITLE:;\n#ARTIST:;\n#TITLETRANSLIT:;\n#SUBTITLETRANSLIT:;\n#ARTISTTRANSLIT:;\n#CREDIT:;\n#BANNER:;\n#BACKGROUND:;\n#LYRICSPATH:;\n#CDTITLE:;\n#MUSIC:;\n#OFFSET:;\n#SAMPLESTART:;\n#SAMPLELENGTH:;\n#LASTBEAT:;\n#SELECTABLE:YES;\n#BPMS:0.000=;\n#STOPS:;\n#BGCHANGES:;";
-
-    public static void startMainWindow() {
-
-        ikkuna = new JFrame();
-        ikkuna.setVisible(true);
-        ikkuna.setBounds(100, 100, 800, 600);
-        ikkuna.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        ikkuna.setLayout(null);
-        ikkuna.setTitle("Random Step Creator");
-        ikkuna.setBackground(Color.GRAY);
-        ikkuna.setResizable(false);
-
-        create = new JButton();
-        create.setVisible(false);
-        create.setText("Create");
-        create.setBounds(20, 500, 740, 50);
-        create.addMouseListener(new MouseAdapter() {
-
-            public void mousePressed (MouseEvent e) {
-                if (!SwingUtilities.isRightMouseButton(e)) {
-                    verifyValues();
-                }
-            }
-        });
-
-        begEmptyTxt = new JLabel("Empty Measures in the Beginning", SwingConstants.CENTER);
-        begEmptyTxt.setVisible(false);
-        begEmptyTxt.setBounds(20, 40, 360, 20);
-
-        begEmptyTxtField = new JTextArea();
-        begEmptyTxtField.setVisible(false);
-        begEmptyTxtField.setBounds(20, 60, 360, 20);
-        begEmptyTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-
-        msrTxt = new JLabel("Measures", SwingConstants.CENTER);
-        msrTxt.setVisible(false);
-        msrTxt.setBounds(20, 100, 360, 20);
-
-        msrTxtField = new JTextArea();
-        msrTxtField.setVisible(false);
-        msrTxtField.setBounds(20, 120, 360, 20);
-        msrTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-
-        endEmptyTxt = new JLabel("Empty Measures in the End", SwingConstants.CENTER);
-        endEmptyTxt.setVisible(false);
-        endEmptyTxt.setBounds(20, 160, 360, 20);
-
-        endEmptyTxtField = new JTextArea();
-        endEmptyTxtField.setVisible(false);
-        endEmptyTxtField.setBounds(20, 180, 360, 20);
-        endEmptyTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-
-        difficultyTxt = new JLabel("Difficulty", SwingConstants.CENTER);
-        difficultyTxt.setVisible(false);
-        difficultyTxt.setBounds(20, 220, 360, 20);
-
-        difficulty = new JList<String>(difficultiesShown);
-        difficulty.setVisible(false);
-        difficulty.setBounds(20, 240, 360, 110);
-        difficulty.setVisibleRowCount(5);
-        difficulty.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-        difficulty.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        difficulty.addListSelectionListener(new ListSelectionListener() {
-            public void valueChanged(ListSelectionEvent e) {;
-                difficultyChoice = difficulty.getSelectedIndex();
-            };
-        });
-
-        difficultyNoTxt = new JLabel("Difficulty (Number)", SwingConstants.CENTER);
-        difficultyNoTxt.setVisible(false);
-        difficultyNoTxt.setBounds(20, 370, 360, 20);
-
-        difficultyNoTxtField = new JTextArea();
-        difficultyNoTxtField.setVisible(false);
-        difficultyNoTxtField.setBounds(20, 390, 360, 20);
-        difficultyNoTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-
-        creatorTxt = new JLabel("Creator (or Chart Name)", SwingConstants.CENTER);
-        creatorTxt.setVisible(false);
-        creatorTxt.setBounds(20, 430, 360, 20);
-        
-        creatorTxtField = new JTextArea();
-        creatorTxtField.setVisible(false);
-        creatorTxtField.setBounds(20, 450, 360, 20);
-        creatorTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-
-
-
-        beatsTxt = new JLabel("Beats (Red Arrows)", SwingConstants.CENTER);
-        beatsTxt.setVisible(false);
-        beatsTxt.setBounds(410, 40, 280, 20);
-
-        bStepsTxt = new JLabel("Steps: ");
-        bStepsTxt.setVisible(false);
-        bStepsTxt.setBounds(460, 60, 80, 20);
-
-        bStepsEnabled = new JCheckBox();
-        bStepsEnabled.setVisible(false);
-        bStepsEnabled.setBounds(520, 60, 20, 20);
-        bStepsEnabled.setSelected(true);
-
-        bStepsPcentTxt = new JLabel("Percent: ");
-        bStepsPcentTxt.setVisible(false);
-        bStepsPcentTxt.setBounds(560, 60, 80, 20);
-
-        bStepsPcentTxtField = new JTextArea();
-        bStepsPcentTxtField.setVisible(false);
-        bStepsPcentTxtField.setBounds(640, 60, 80, 20);
-        bStepsPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        bStepsPcentTxtField.setText("100");
-
-        bJumpsTxt = new JLabel("Jumps: ");
-        bJumpsTxt.setVisible(false);
-        bJumpsTxt.setBounds(460, 80, 80, 20);
-
-        bJumpsEnabled = new JCheckBox();
-        bJumpsEnabled.setVisible(false);
-        bJumpsEnabled.setBounds(520, 80, 20, 20);
-        bJumpsEnabled.setSelected(true);
-
-        bJumpsPcentTxt = new JLabel("Percent: ");
-        bJumpsPcentTxt.setVisible(false);
-        bJumpsPcentTxt.setBounds(560, 80, 80, 20);
-
-        bJumpsPcentTxtField = new JTextArea();
-        bJumpsPcentTxtField.setVisible(false);
-        bJumpsPcentTxtField.setBounds(640, 80, 80, 20);
-        bJumpsPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        bJumpsPcentTxtField.setText("0");
-
-        bHoldsTxt = new JLabel("Hands: ");
-        bHoldsTxt.setVisible(false);
-        bHoldsTxt.setBounds(460, 100, 80, 20);
-
-        bHoldsEnabled = new JCheckBox();
-        bHoldsEnabled.setVisible(false);
-        bHoldsEnabled.setBounds(520, 100, 20, 20);
-        bHoldsEnabled.setSelected(true);
-
-        bHoldsPcentTxt = new JLabel("Percent: ");
-        bHoldsPcentTxt.setVisible(false);
-        bHoldsPcentTxt.setBounds(560, 100, 80, 20);
-
-        bHoldsPcentTxtField = new JTextArea();
-        bHoldsPcentTxtField.setVisible(false);
-        bHoldsPcentTxtField.setBounds(640, 100, 80, 20);
-        bHoldsPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        bHoldsPcentTxtField.setText("0");
-
-        bMinesTxt = new JLabel("Mines: ");
-        bMinesTxt.setVisible(false);
-        bMinesTxt.setBounds(460, 120, 80, 20);
-
-        bMinesEnabled = new JCheckBox();
-        bMinesEnabled.setVisible(false);
-        bMinesEnabled.setBounds(520, 120, 20, 20);
-        bMinesEnabled.setSelected(true);
-
-        bMinesPcentTxt = new JLabel("Percent: ");
-        bMinesPcentTxt.setVisible(false);
-        bMinesPcentTxt.setBounds(560, 120, 80, 20);
-
-        bMinesPcentTxtField = new JTextArea();
-        bMinesPcentTxtField.setVisible(false);
-        bMinesPcentTxtField.setBounds(640, 120, 80, 20);
-        bMinesPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        bMinesPcentTxtField.setText("0");
-
-
-        halfBeatsTxt = new JLabel("Half Beats (Blue Arrows)", SwingConstants.CENTER);
-        halfBeatsTxt.setVisible(false);
-        halfBeatsTxt.setBounds(410, 160, 280, 20);
-
-        hbStepsTxt = new JLabel("Steps: ");
-        hbStepsTxt.setVisible(false);
-        hbStepsTxt.setBounds(460, 180, 80, 20);
-
-        hbStepsEnabled = new JCheckBox();
-        hbStepsEnabled.setVisible(false);
-        hbStepsEnabled.setBounds(520, 180, 20, 20);
-        hbStepsEnabled.setSelected(true);
-
-        hbStepsPcentTxt = new JLabel("Percent: ");
-        hbStepsPcentTxt.setVisible(false);
-        hbStepsPcentTxt.setBounds(560, 180, 80, 20);
-
-        hbStepsPcentTxtField = new JTextArea();
-        hbStepsPcentTxtField.setVisible(false);
-        hbStepsPcentTxtField.setBounds(640, 180, 80, 20);
-        hbStepsPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        hbStepsPcentTxtField.setText("0");
-
-        hbJumpsTxt = new JLabel("Jumps: ");
-        hbJumpsTxt.setVisible(false);
-        hbJumpsTxt.setBounds(460, 200, 80, 20);
-
-        hbJumpsEnabled = new JCheckBox();
-        hbJumpsEnabled.setVisible(false);
-        hbJumpsEnabled.setBounds(520, 200, 20, 20);
-        hbJumpsEnabled.setSelected(true);
-
-        hbJumpsPcentTxt = new JLabel("Percent: ");
-        hbJumpsPcentTxt.setVisible(false);
-        hbJumpsPcentTxt.setBounds(560, 200, 80, 20);
-
-        hbJumpsPcentTxtField = new JTextArea();
-        hbJumpsPcentTxtField.setVisible(false);
-        hbJumpsPcentTxtField.setBounds(640, 200, 80, 20);
-        hbJumpsPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        hbJumpsPcentTxtField.setText("0");
-
-        hbHoldsTxt = new JLabel("Hands: ");
-        hbHoldsTxt.setVisible(false);
-        hbHoldsTxt.setBounds(460, 220, 80, 20);
-
-        hbHoldsEnabled = new JCheckBox();
-        hbHoldsEnabled.setVisible(false);
-        hbHoldsEnabled.setBounds(520, 220, 20, 20);
-        hbHoldsEnabled.setSelected(true);
-
-        hbHoldsPcentTxt = new JLabel("Percent: ");
-        hbHoldsPcentTxt.setVisible(false);
-        hbHoldsPcentTxt.setBounds(560, 220, 80, 20);
-
-        hbHoldsPcentTxtField = new JTextArea();
-        hbHoldsPcentTxtField.setVisible(false);
-        hbHoldsPcentTxtField.setBounds(640, 220, 80, 20);
-        hbHoldsPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        hbHoldsPcentTxtField.setText("0");
-
-        hbMinesTxt = new JLabel("Mines: ");
-        hbMinesTxt.setVisible(false);
-        hbMinesTxt.setBounds(460, 240, 80, 20);
-
-        hbMinesEnabled = new JCheckBox();
-        hbMinesEnabled.setVisible(false);
-        hbMinesEnabled.setBounds(520, 240, 20, 20);
-        hbMinesEnabled.setSelected(true);
-
-        hbMinesPcentTxt = new JLabel("Percent: ");
-        hbMinesPcentTxt.setVisible(false);
-        hbMinesPcentTxt.setBounds(560, 240, 80, 20);
-
-        hbMinesPcentTxtField = new JTextArea();
-        hbMinesPcentTxtField.setVisible(false);
-        hbMinesPcentTxtField.setBounds(640, 240, 80, 20);
-        hbMinesPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        hbMinesPcentTxtField.setText("0");
-
-
-        quarterBeatsTxt = new JLabel("Quarter Beats (Green Arrows)", SwingConstants.CENTER);
-        quarterBeatsTxt.setVisible(false);
-        quarterBeatsTxt.setBounds(410, 280, 280, 20);
-
-        qbStepsTxt = new JLabel("Steps: ");
-        qbStepsTxt.setVisible(false);
-        qbStepsTxt.setBounds(460, 300, 80, 20);
-
-        qbStepsEnabled = new JCheckBox();
-        qbStepsEnabled.setVisible(false);
-        qbStepsEnabled.setBounds(520, 300, 20, 20);
-        qbStepsEnabled.setSelected(true);
-
-        qbStepsPcentTxt = new JLabel("Percent: ");
-        qbStepsPcentTxt.setVisible(false);
-        qbStepsPcentTxt.setBounds(560, 300, 80, 20);
-
-        qbStepsPcentTxtField = new JTextArea();
-        qbStepsPcentTxtField.setVisible(false);
-        qbStepsPcentTxtField.setBounds(640, 300, 80, 20);
-        qbStepsPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        qbStepsPcentTxtField.setText("0");
-
-        qbJumpsTxt = new JLabel("Jumps: ");
-        qbJumpsTxt.setVisible(false);
-        qbJumpsTxt.setBounds(460, 320, 80, 20);
-
-        qbJumpsEnabled = new JCheckBox();
-        qbJumpsEnabled.setVisible(false);
-        qbJumpsEnabled.setBounds(520, 320, 20, 20);
-        qbJumpsEnabled.setSelected(true);
-
-        qbJumpsPcentTxt = new JLabel("Percent: ");
-        qbJumpsPcentTxt.setVisible(false);
-        qbJumpsPcentTxt.setBounds(560, 320, 80, 20);
-
-        qbJumpsPcentTxtField = new JTextArea();
-        qbJumpsPcentTxtField.setVisible(false);
-        qbJumpsPcentTxtField.setBounds(640, 320, 80, 20);
-        qbJumpsPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        qbJumpsPcentTxtField.setText("0");
-
-        qbHoldsTxt = new JLabel("Hands: ");
-        qbHoldsTxt.setVisible(false);
-        qbHoldsTxt.setBounds(460, 340, 80, 20);
-
-        qbHoldsEnabled = new JCheckBox();
-        qbHoldsEnabled.setVisible(false);
-        qbHoldsEnabled.setBounds(520, 340, 20, 20);
-        qbHoldsEnabled.setSelected(true);
-
-        qbHoldsPcentTxt = new JLabel("Percent: ");
-        qbHoldsPcentTxt.setVisible(false);
-        qbHoldsPcentTxt.setBounds(560, 340, 80, 20);
-
-        qbHoldsPcentTxtField = new JTextArea();
-        qbHoldsPcentTxtField.setVisible(false);
-        qbHoldsPcentTxtField.setBounds(640, 340, 80, 20);
-        qbHoldsPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        qbHoldsPcentTxtField.setText("0");
-
-        qbMinesTxt = new JLabel("Mines: ");
-        qbMinesTxt.setVisible(false);
-        qbMinesTxt.setBounds(460, 360, 80, 20);
-
-        qbMinesEnabled = new JCheckBox();
-        qbMinesEnabled.setVisible(false);
-        qbMinesEnabled.setBounds(520, 360, 20, 20);
-        qbMinesEnabled.setSelected(true);
-
-        qbMinesPcentTxt = new JLabel("Percent: ");
-        qbMinesPcentTxt.setVisible(false);
-        qbMinesPcentTxt.setBounds(560, 360, 80, 20);
-
-        qbMinesPcentTxtField = new JTextArea();
-        qbMinesPcentTxtField.setVisible(false);
-        qbMinesPcentTxtField.setBounds(640, 360, 80, 20);
-        qbMinesPcentTxtField.setBorder(BorderFactory.createLineBorder(Color.black, 1, true));
-        qbMinesPcentTxtField.setText("0");
-
-
-
-        noFileSign = new JLabel("No file selected", SwingConstants.CENTER);
-        noFileSign.setVisible(true);
-        noFileSign.setBounds(20, 20, 720, 520);
-
-
-  
-        open = new JMenuItem("Open Step File");
-        open.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                if(e.getSource()==open){    
-                    JFileChooser fc=new JFileChooser(".\\");
-                    FileNameExtensionFilter filter = new FileNameExtensionFilter("StepMania Files (.sm)", "sm");
-                    fc.setFileFilter(filter);
-                    int i=fc.showOpenDialog(ikkuna);    
-                    if(i==JFileChooser.APPROVE_OPTION){
-                        File f=fc.getSelectedFile();
-                        String filepath=f.getPath();
-                        try{  
-                            stepFile = new File(f.getName());
-                            audioFile = new File(f.getName().substring(0, f.getName().length()-3) + ".mp3");
-                        }
-                        catch (Exception ex) {
-                            ex.printStackTrace();
-                        }
-
-                        foundChartsInfo = "";
-                        readSongInfo();
-                        readChartData();
-                        readChartInfo();
-                        readChartDifficultyInfo();
-                        readMeasureCount();
-                        combinedChartData = findExistingChartsAtFileOpen();
-                        System.out.println(combinedChartData);
-                        setComponentVisibility(true);
-                        if (foundChartsInfo == "" || foundChartsInfo == null || foundCharts == 0) {
-                            infoBox("No charts were found.", "Chart Info");
-                        }
-                        else {
-                            infoBox(foundChartsInfo, "Chart Info");
-                        }
-                    }
-                }
-                
-            }
-        });
-
-        createUsingAudioFile = new JMenuItem("Create Using Audio File");
-        createUsingAudioFile.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                if(e.getSource()==createUsingAudioFile){    
-                    JFileChooser fc=new JFileChooser(".\\");
-                    FileNameExtensionFilter filter = new FileNameExtensionFilter("Audio Files (.mp3; .ogg)", "mp3", "ogg");
-                    fc.setFileFilter(filter);
-                    int i=fc.showOpenDialog(ikkuna);    
-                    if(i==JFileChooser.APPROVE_OPTION){    
-                        File f=fc.getSelectedFile();    
-                        String filepath=f.getPath();    
-                        try{  
-                            audioFile = new File(f.getName());
-                            stepFile = new File(f.getName().substring(0, f.getName().length()-4) + ".sm");
-                        }
-                        catch (Exception ex) {
-                            ex.printStackTrace();
-                        }
-                        MainWindow.mainSongInfo = "#TITLE:" + audioFile.getName().substring(0, audioFile.getName().length()-4) + ";\n#SUBTITLE:;\n#ARTIST:;\n#TITLETRANSLIT:;\n#SUBTITLETRANSLIT:;\n#ARTISTTRANSLIT:;\n#GENRE:;\n#CREDIT:;\n#BANNER:;\n#BACKGROUND:;\n#LYRICSPATH:;\n#CDTITLE:;\n#MUSIC:" + audioFile.getName() + ";\n#OFFSET:0;\n#SAMPLESTART:;\n#SAMPLELENGTH:;\n#LASTBEAT:;\n#SELECTABLE:YES;\n#BPMS:0.000=0;\n#STOPS:;\n#BGCHANGES:;\n#KEYSOUNDS:;\n";
-                        EditSongInfoWindow editSongWindow = new EditSongInfoWindow(MainWindow.mainSongInfo);
-                        editSongWindow.editTextWindow.setVisible(true);
-                        songInfo = MainWindow.mainSongInfo;
-
-                        createNewFile();
-                        readSongInfo();
-                        readChartData();
-                        readChartInfo();
-                        readChartDifficultyInfo();
-                        setComponentVisibility(true);
-                    }
-                }
-            }
-        });
-
-        saveFile = new JMenuItem("Save File");
-        saveFile.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                try {
-                    if(e.getSource()==saveFile){    
-                        combinedStepfileData = MainWindow.mainSongInfo + combinedChartData;
-                        writeIntoFile(combinedStepfileData);
-                    }
-                }
-                catch (NullPointerException npe) {
-                    errorBox("Please select a file first", "File not found");
-                }
-            }
-        });
-
-        file = new JMenu("File");
-        file.add(open);
-        file.add(createUsingAudioFile);
-        file.add(saveFile);
-
-        editSongInfo = new JMenuItem("Edit Song Info");
-        editSongInfo.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                try {
-                    EditSongInfoWindow editSongWindow = new EditSongInfoWindow(MainWindow.mainSongInfo);
-                    editSongWindow.editTextWindow.setVisible(true);
-                    songInfo = MainWindow.mainSongInfo;
-                }
-                catch (NullPointerException npe) {
-                    errorBox("Please select a file first", "File not found");
-                }
-            }
-        });
-
-        edit = new JMenu("Edit");
-        edit.add(editSongInfo);
-
-        viewSongInfo = new JMenuItem("View Song Info");
-        viewSongInfo.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                if(e.getSource()==viewSongInfo){
-                    songInfo = MainWindow.mainSongInfo;
-                    if (songInfo == null || !songInfo.startsWith("#")) {
-                        infoBox("No song info was found.", "Song Info");
-                    }
-                    else {
-                        infoBox(songInfo, "Song Info");
-                    }
-                }  
-            }
-        });
-
-        viewChartInfo = new JMenuItem("View Chart Info");
-        viewChartInfo.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                if(e.getSource()==viewChartInfo){
-                    foundChartsInfo = "";
-                    readChartData();
-                    readChartInfo();
-                    if (foundChartsInfo == "" || foundChartsInfo == null || findChartAmount() == 0) {
-                        infoBox("No charts were found.", "Chart Info");
-                    }
-                    else {
-                        infoBox(foundChartsInfo, "Chart Info");
-                    }
-                }  
-            }
-        });
-
-        view = new JMenu("View");
-        view.add(viewSongInfo);
-        view.add(viewChartInfo);
-
-        calculateMeasures = new JMenuItem("Calculate Measures");
-        calculateMeasures.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                try {
-                    CalculateMeasureWindow calcMeasureWindow = new CalculateMeasureWindow();
-                    calcMeasureWindow.calculateMeasureWindow.setVisible(true);
-                }
-                catch (NullPointerException npe) {
-                    errorBox("Please select a file first", "File not found");
-                }
-            }
-        });
-
-        adjustBPM = new JMenuItem("Adjust BPM and Offset");
-        adjustBPM.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-                try {
-                    AdjustBPMWindow adjBpmWindow = new AdjustBPMWindow();
-                    adjBpmWindow.adjustBPMWindow.setVisible(true);
-                }
-                catch (NullPointerException npe) {
-                    errorBox("Please select a file first", "File not found");
-                }
-            }
-        });
-
-        tools = new JMenu("Tools");
-        tools.add(calculateMeasures);
-        tools.add(adjustBPM);
-
-
-        mb = new JMenuBar();
-        mb.setBounds(0,0,800,20);
-        mb.add(file);
-        mb.add(edit);
-        mb.add(view);
-        mb.add(tools);
-
-
-
-        ikkuna.add(create);
-        ikkuna.add(mb);
-        
-        ikkuna.add(begEmptyTxt);
-        ikkuna.add(begEmptyTxtField);
-        ikkuna.add(msrTxt);
-        ikkuna.add(msrTxtField);
-        ikkuna.add(endEmptyTxt);
-        ikkuna.add(endEmptyTxtField);
-
-        ikkuna.add(difficultyTxt);
-        ikkuna.add(difficulty);
-        ikkuna.add(difficultyNoTxt);
-        ikkuna.add(difficultyNoTxtField);
-        ikkuna.add(creatorTxt);
-        ikkuna.add(creatorTxtField);
-        ikkuna.add(noFileSign);
-
-        ikkuna.add(beatsTxt);
-        ikkuna.add(bStepsTxt);
-        ikkuna.add(bStepsEnabled);
-        ikkuna.add(bStepsPcentTxt);
-        ikkuna.add(bStepsPcentTxtField);
-        ikkuna.add(bJumpsTxt);
-        ikkuna.add(bJumpsEnabled);
-        ikkuna.add(bJumpsPcentTxt);
-        ikkuna.add(bJumpsPcentTxtField);
-        ikkuna.add(bHoldsTxt);
-        ikkuna.add(bHoldsEnabled);
-        ikkuna.add(bHoldsPcentTxt);
-        ikkuna.add(bHoldsPcentTxtField);
-        ikkuna.add(bMinesTxt);
-        ikkuna.add(bMinesEnabled);
-        ikkuna.add(bMinesPcentTxt);
-        ikkuna.add(bMinesPcentTxtField);
-
-        ikkuna.add(halfBeatsTxt);
-        ikkuna.add(hbStepsTxt);
-        ikkuna.add(hbStepsEnabled);
-        ikkuna.add(hbStepsPcentTxt);
-        ikkuna.add(hbStepsPcentTxtField);
-        ikkuna.add(hbJumpsTxt);
-        ikkuna.add(hbJumpsEnabled);
-        ikkuna.add(hbJumpsPcentTxt);
-        ikkuna.add(hbJumpsPcentTxtField);
-        ikkuna.add(hbHoldsTxt);
-        ikkuna.add(hbHoldsEnabled);
-        ikkuna.add(hbHoldsPcentTxt);
-        ikkuna.add(hbHoldsPcentTxtField);
-        ikkuna.add(hbMinesTxt);
-        ikkuna.add(hbMinesEnabled);
-        ikkuna.add(hbMinesPcentTxt);
-        ikkuna.add(hbMinesPcentTxtField);
-
-        ikkuna.add(quarterBeatsTxt);
-        ikkuna.add(qbStepsTxt);
-        ikkuna.add(qbStepsEnabled);
-        ikkuna.add(qbStepsPcentTxt);
-        ikkuna.add(qbStepsPcentTxtField);
-        ikkuna.add(qbJumpsTxt);
-        ikkuna.add(qbJumpsEnabled);
-        ikkuna.add(qbJumpsPcentTxt);
-        ikkuna.add(qbJumpsPcentTxtField);
-        ikkuna.add(qbHoldsTxt);
-        ikkuna.add(qbHoldsEnabled);
-        ikkuna.add(qbHoldsPcentTxt);
-        ikkuna.add(qbHoldsPcentTxtField);
-        ikkuna.add(qbMinesTxt);
-        ikkuna.add(qbMinesEnabled);
-        ikkuna.add(qbMinesPcentTxt);
-        ikkuna.add(qbMinesPcentTxtField);
-
-        ikkuna.revalidate();
-        ikkuna.repaint();
-
-        
-    }
-
-    static void infoBox(String infoMessage, String titleBar) {
-        JOptionPane.showMessageDialog(null, infoMessage, titleBar, JOptionPane.INFORMATION_MESSAGE);
-    }
-
-    static void errorBox(String errorMessage, String titleBar) {
-        JOptionPane.showMessageDialog(null, errorMessage, titleBar, JOptionPane.ERROR_MESSAGE);
-    }
-
-    static void exclamationBox(String exclamationMessage, String titleBar) {
-        JOptionPane.showConfirmDialog(null, exclamationMessage, titleBar, JOptionPane.WARNING_MESSAGE);
-    }
-
-
-    static void setComponentVisibility(boolean visibility) {
-        begEmptyTxt.setVisible(visibility);
-        begEmptyTxtField.setVisible(visibility);
-        msrTxt.setVisible(visibility);
-        msrTxtField.setVisible(visibility);
-        endEmptyTxt.setVisible(visibility);
-        endEmptyTxtField.setVisible(visibility);
-        creatorTxt.setVisible(visibility);
-        creatorTxtField.setVisible(visibility);
-        create.setVisible(visibility);
-        difficultyTxt.setVisible(visibility);
-        difficulty.setVisible(visibility);
-        difficultyNoTxt.setVisible(visibility);
-        difficultyNoTxtField.setVisible(visibility);
-
-        beatsTxt.setVisible(visibility);
-        bStepsTxt.setVisible(visibility);
-        bStepsEnabled.setVisible(visibility);
-        bStepsPcentTxt.setVisible(visibility);
-        bStepsPcentTxtField.setVisible(visibility);
-        bJumpsTxt.setVisible(visibility);
-        bJumpsEnabled.setVisible(visibility);
-        bJumpsPcentTxt.setVisible(visibility);
-        bJumpsPcentTxtField.setVisible(visibility);
-        bHoldsTxt.setVisible(visibility);
-        bHoldsEnabled.setVisible(visibility);
-        bHoldsPcentTxt.setVisible(visibility);
-        bHoldsPcentTxtField.setVisible(visibility);
-        bMinesTxt.setVisible(visibility);
-        bMinesEnabled.setVisible(visibility);
-        bMinesPcentTxt.setVisible(visibility);
-        bMinesPcentTxtField.setVisible(visibility);
-
-        halfBeatsTxt.setVisible(visibility);
-        hbStepsTxt.setVisible(visibility);
-        hbStepsEnabled.setVisible(visibility);
-        hbStepsPcentTxt.setVisible(visibility);
-        hbStepsPcentTxtField.setVisible(visibility);
-        hbJumpsTxt.setVisible(visibility);
-        hbJumpsEnabled.setVisible(visibility);
-        hbJumpsPcentTxt.setVisible(visibility);
-        hbJumpsPcentTxtField.setVisible(visibility);
-        hbHoldsTxt.setVisible(visibility);
-        hbHoldsEnabled.setVisible(visibility);
-        hbHoldsPcentTxt.setVisible(visibility);
-        hbHoldsPcentTxtField.setVisible(visibility);
-        hbMinesTxt.setVisible(visibility);
-        hbMinesEnabled.setVisible(visibility);
-        hbMinesPcentTxt.setVisible(visibility);
-        hbMinesPcentTxtField.setVisible(visibility);
-
-        quarterBeatsTxt.setVisible(visibility);
-        qbStepsTxt.setVisible(visibility);
-        qbStepsEnabled.setVisible(visibility);
-        qbStepsPcentTxt.setVisible(visibility);
-        qbStepsPcentTxtField.setVisible(visibility);
-        qbJumpsTxt.setVisible(visibility);
-        qbJumpsEnabled.setVisible(visibility);
-        qbJumpsPcentTxt.setVisible(visibility);
-        qbJumpsPcentTxtField.setVisible(visibility);
-        qbHoldsTxt.setVisible(visibility);
-        qbHoldsEnabled.setVisible(visibility);
-        qbHoldsPcentTxt.setVisible(visibility);
-        qbHoldsPcentTxtField.setVisible(visibility);
-        qbMinesTxt.setVisible(visibility);
-        qbMinesEnabled.setVisible(visibility);
-        qbMinesPcentTxt.setVisible(visibility);
-        qbMinesPcentTxtField.setVisible(visibility);
-
-        noFileSign.setVisible(!visibility);
-    }
-
-
-    static void verifyValues() {
-
-            boolean chartFree = true;
-            updateChartData();
-            
-            try {
-                difficultyNumber = Short.parseShort(difficultyNoTxtField.getText());
-                emptyMsrsBeginning = Short.parseShort(begEmptyTxtField.getText());
-                msrs = Short.parseShort(msrTxtField.getText());
-                emptyMsrsEnd = Short.parseShort(endEmptyTxtField.getText());
-
-                stepPercentage = Byte.parseByte(bStepsPcentTxtField.getText());
-                jumpPercentage = Byte.parseByte(bJumpsPcentTxtField.getText());
-                holdPercentage = Byte.parseByte(bHoldsPcentTxtField.getText());
-                minePercentage = Byte.parseByte(bMinesPcentTxtField.getText());
-
-                halfStepPercentage = Byte.parseByte(hbStepsPcentTxtField.getText());
-                halfJumpPercentage = Byte.parseByte(hbJumpsPcentTxtField.getText());
-                halfHoldPercentage = Byte.parseByte(hbHoldsPcentTxtField.getText());
-                halfMinePercentage = Byte.parseByte(hbMinesPcentTxtField.getText());
-
-                quarterStepPercentage = Byte.parseByte(qbStepsPcentTxtField.getText());
-                quarterJumpPercentage = Byte.parseByte(qbJumpsPcentTxtField.getText());
-                quarterHoldPercentage = Byte.parseByte(qbHoldsPcentTxtField.getText());
-                quarterMinePercentage = Byte.parseByte(qbMinesPcentTxtField.getText());
-
-                if (difficultyNumber < 1 || emptyMsrsBeginning < 0 || msrs < 0 || emptyMsrsEnd < 0) {
-                    throw new NumberFormatException();
-                }
-                else if (stepPercentage < 0 || stepPercentage > 100 ||
-                    jumpPercentage < 0 || jumpPercentage > 100 ||
-                    holdPercentage < 0 || holdPercentage > 100 ||
-                    minePercentage < 0 || minePercentage > 100 ||
-                    halfStepPercentage < 0 || halfStepPercentage > 100 ||
-                    halfJumpPercentage < 0 || halfJumpPercentage > 100 ||
-                    halfHoldPercentage < 0 || halfHoldPercentage > 100 ||
-                    halfMinePercentage < 0 || halfMinePercentage > 100 ||
-                    quarterStepPercentage < 0 || quarterStepPercentage > 100 ||
-                    quarterJumpPercentage < 0 || quarterJumpPercentage > 100 ||
-                    quarterHoldPercentage < 0 || quarterHoldPercentage > 100 ||
-                    quarterMinePercentage < 0 || quarterMinePercentage > 100
-                ){
-                    System.out.println(stepPercentage);
-                    throw new InvalidPercentageException();
-                }
-                else if (stepPercentage + jumpPercentage + holdPercentage + minePercentage > 100 ||
-                halfStepPercentage + halfJumpPercentage + halfHoldPercentage + halfMinePercentage > 100 ||
-                quarterStepPercentage + quarterJumpPercentage + quarterHoldPercentage + quarterMinePercentage > 100
-                ) {
-                    throw new PercentageOverException();
-                }
-                else {
-                    for (int i = 0; i < chartDataDifficultyInfo.length; i++) {
-                        if (difficulties[difficultyChoice].charAt(0) == chartDataDifficultyInfo[i].charAt(0) && difficulties[difficultyChoice].charAt(1) == chartDataDifficultyInfo[i].charAt(1)) {
-                            System.out.println(difficulties[difficultyChoice]);
-                            System.out.println(chartDataDifficultyInfo[i]);
-                            int selection = JOptionPane.showConfirmDialog(null, "Chart " + difficulties[difficultyChoice] + " already exists. Do you want to replace it?", "Chart already exists", JOptionPane.WARNING_MESSAGE);
-                            if (selection == JOptionPane.OK_OPTION) {
-                                chartFree = true;
-                                break;
-                            }
-                            else {
-                                chartFree = false;
-                                break;
-                            }
-                        }
-                    }
-                    if (chartFree) {
-                        createSteps();
-                    }
-                }
-            }
-            catch (NumberFormatException e) {
-                errorBox("Invalid input. Please make sure input value is proper integer number.\n\nValue for measures: 0 to 32767 (Non-negative Short)\nValue for difficulty: 1 to 32767 (Positive Short)\nValue for percentage: 0 to 100", "Number format error");
-            }
-            catch (IndexOutOfBoundsException e) {
-                errorBox("Something went wrong", "Index ouf of Bounds Exception");
-            }
-            catch (PercentageOverException e) {
-                errorBox("Percentage of steps in one type of beats cannot exceed 100.\nE.g. 65% (Steps) + 25% (Jumps) + 5% (Hands) + 5% (Mines) = 100% (Total)", "Invalid Percentage");
-            }
-            catch (InvalidPercentageException e) {
-                errorBox("Percentage must be between 0 and 100.", "Number format error");
-            }
-
-            
-    }
-
-    static void readSongInfo() {
-
-        try {
-            Scanner sc = new Scanner(stepFile);
-            String foundInfo = "";
-            int foundInfoLines = 0;
-            while (sc.hasNextLine()) {
-                String line = sc.nextLine();
-                if (line.startsWith("/")) {
-                    break;
-                }
-                foundInfo += line + "\n";
-                foundInfoLines++;
-            }
-            songInfo = foundInfo;
-            MainWindow.mainSongInfo = foundInfo;
-            System.out.println("Song info: " + songInfo);
-            sc.close();
-        }
-        catch (FileNotFoundException e) {
-            System.out.println("No file found!");
-        }
-
-        if (MainWindow.mainSongInfo != null) {
-            int i = MainWindow.mainSongInfo.indexOf("#BPMS");
-            String bpms;
-            if (i == -1) {
-                mainBPM = "";
-            }
-            else {
-                i += 6;
-                bpms = "";
-                while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                    bpms += MainWindow.mainSongInfo.charAt(i);
-                    i++;
-                }
-                mainBPM = bpms.substring(6);
-            }
-
-            i = MainWindow.mainSongInfo.indexOf("#OFFSET");
-            String offset;
-            if (i == -1) {
-                mainOffset = "";
-            }
-            else {
-                i += 8;
-                offset = "";
-                while (MainWindow.mainSongInfo.charAt(i) != ';') {
-                    offset += MainWindow.mainSongInfo.charAt(i);
-                    i++;
-                }
-                mainOffset = offset;
-            }
-        }
-    }
-
-    static void readChartInfo() {
-
-        try {
-            Scanner sc = new Scanner(stepFile);
-            int stepArrayIndex = 0;
-            String foundInfo;
-            String foundNum;
-            foundChartsInfo += "Found Charts: \n\n";
-            while (sc.hasNextLine()) {
-                String line = sc.nextLine();
-                if (line.startsWith("/")) {
-                    sc.nextLine();
-                    sc.nextLine();
-                    sc.nextLine();
-                    foundInfo = sc.nextLine();
-                    foundNum = sc.nextLine();
-                    
-                    foundChartsInfo += "" + foundInfo + "\n        Difficulty: " + foundNum + "\n        Steps: " + stepsInChart[stepArrayIndex] + "\n        Jumps: " + jumpsInChart[stepArrayIndex] + "\n        Hands: " + handsInChart[stepArrayIndex] + "\n        Mines: " + minesInChart[stepArrayIndex] + "\n\n";
-                    foundCharts++;
-                    stepArrayIndex++;
-                }
-            }
-
-            sc.close();
-        }
-        catch (FileNotFoundException e) {
-            System.out.println("No file found!");
-        }
-    }
-
-    static int findChartAmount() {
-        int foundCharts = 0;
-        try {
-            Scanner sc = new Scanner(stepFile);
-            while (sc.hasNextLine()) {
-                String line = sc.nextLine();
-                if (line.startsWith("/")) {
-                    while (!line.startsWith(";")) {
-                        line = sc.nextLine();
-                    }
-                    foundCharts++;
-                }
-            }
-
-            sc.close();
-        }
-        catch (FileNotFoundException e) {
-            System.out.println("No file found!");
-        }
-        return foundCharts;
-    }
-
-    static void readChartData() {
-
-        try {
-            Scanner sc = new Scanner(stepFile);
-            String foundData = "";
-            int foundCharts = findChartAmount();
-            int foundChartIndex = 0;
-            int stepCount = 0;
-            int jumpCount = 0;
-            int handCount = 0;
-            int mineCount = 0;
-            chartData = new String[foundCharts];
-            stepsInChart = new int[foundCharts];
-            jumpsInChart = new int[foundCharts];
-            handsInChart = new int[foundCharts];
-            minesInChart = new int[foundCharts];
-            while (sc.hasNextLine()) {
-                String line = sc.nextLine();
-                if (line.startsWith("/")) {
-                    while (!line.startsWith(";") && line != null && line != "") {
-                        foundData += line + "\n";
-                        if (line.charAt(0) == '1' && line.charAt(1) == '0' && line.charAt(2) == '0' && line.charAt(3) == '0' ||
-                            line.charAt(0) == '0' && line.charAt(1) == '1' && line.charAt(2) == '0' && line.charAt(3) == '0' ||
-                            line.charAt(0) == '0' && line.charAt(1) == '0' && line.charAt(2) == '1' && line.charAt(3) == '0' ||
-                            line.charAt(0) == '0' && line.charAt(1) == '0' && line.charAt(2) == '0' && line.charAt(3) == '1') {
-                                stepCount++;
-                        }
-                        if (line.charAt(0) == '1' && line.charAt(1) == '1' && line.charAt(2) == '0' && line.charAt(3) == '0' ||
-                            line.charAt(0) == '1' && line.charAt(1) == '0' && line.charAt(2) == '1' && line.charAt(3) == '0' ||
-                            line.charAt(0) == '1' && line.charAt(1) == '0' && line.charAt(2) == '0' && line.charAt(3) == '1' ||
-                            line.charAt(0) == '0' && line.charAt(1) == '1' && line.charAt(2) == '1' && line.charAt(3) == '0' ||
-                            line.charAt(0) == '0' && line.charAt(1) == '1' && line.charAt(2) == '0' && line.charAt(3) == '1' ||
-                            line.charAt(0) == '0' && line.charAt(1) == '0' && line.charAt(2) == '1' && line.charAt(3) == '1' ) {
-                                jumpCount++;
-                        }
-                        if (line.charAt(0) == '1' && line.charAt(1) == '1' && line.charAt(2) == '1' && line.charAt(3) == '0' ||
-                            line.charAt(0) == '1' && line.charAt(1) == '1' && line.charAt(2) == '0' && line.charAt(3) == '1' ||
-                            line.charAt(0) == '1' && line.charAt(1) == '0' && line.charAt(2) == '1' && line.charAt(3) == '1' ||
-                            line.charAt(0) == '0' && line.charAt(1) == '1' && line.charAt(2) == '1' && line.charAt(3) == '1') {
-                                handCount++;
-                        }
-                        if (line.charAt(0) == 'M' && line.charAt(1) == '0' && line.charAt(2) == '0' && line.charAt(3) == '0' ||
-                            line.charAt(0) == '0' && line.charAt(1) == 'M' && line.charAt(2) == '0' && line.charAt(3) == '0' ||
-                            line.charAt(0) == '0' && line.charAt(1) == '0' && line.charAt(2) == 'M' && line.charAt(3) == '0' ||
-                            line.charAt(0) == '0' && line.charAt(1) == '0' && line.charAt(2) == '0' && line.charAt(3) == 'M') {
-                                mineCount++;
-                        }
-                        line = sc.nextLine();
-                    }
-                    chartData[foundChartIndex] = foundData + ";\n";
-                    stepsInChart[foundChartIndex] = stepCount;
-                    jumpsInChart[foundChartIndex] = jumpCount;
-                    handsInChart[foundChartIndex] = handCount;
-                    minesInChart[foundChartIndex] = mineCount;
-                    foundChartIndex++;
-                    foundData = "";
-                    stepCount = 0;
-                    jumpCount = 0;
-                    handCount = 0;
-                    mineCount = 0;
-                }
-            }
-
-            sc.close();
-        }
-        catch (FileNotFoundException e) {
-            System.out.println("No file found!");
-        }
-    }
-
-    static void readMeasureCount() {
-        try {
-            Scanner sc = new Scanner(stepFile);
-            int measureCount = 0;
-            boolean is1stChart = true;
-            while (sc.hasNextLine()) {
-                String line = sc.nextLine();
-                if (line.startsWith("/")) {
-                    while (!line.startsWith(";") && line != null && line != "") {
-                        if (line.charAt(0) == ',' && is1stChart) {
-                            measureCount++;
-                        }
-                        line = sc.nextLine();
-                    }
-                    if (is1stChart) {
-                        msrTxtField.setText("" + measureCount);
-                        is1stChart = false;
-                    }
-                    measureCount = 0;
-                }
-            }
-        }
-        catch (FileNotFoundException e) {
-            System.out.println("No file found!");
-        }
-    }
-
-    static void readChartDifficultyInfo() {
-
-        try {
-            Scanner sc = new Scanner(stepFile);
-            int foundCharts = findChartAmount();
-            chartDataDifficultyInfo = new String[foundCharts];
-            int foundChartIndex = 0;
-            while (sc.hasNextLine()) {
-                String line = sc.nextLine();
-                if (line.startsWith("/")) {
-                    line = sc.nextLine();
-                    line = sc.nextLine();
-                    line = sc.nextLine();
-                    line = sc.nextLine();
-                    chartDataDifficultyInfo[foundChartIndex] = line.substring(5, line.length()-1);
-                    System.out.println(chartDataDifficultyInfo[foundChartIndex]);
-                    while (!line.startsWith(";")) {
-                        line = sc.nextLine();
-                    }
-                    foundChartIndex++;
-                }
-            }
-
-            sc.close();
-        }
-        catch (FileNotFoundException e) {
-            System.out.println("No file found!");
-        }
-    }
-
-    static String findOldCharts() {
-        String oldChartsData = "";
-        for (int i = 0; i < chartData.length; i++) {
-            if (!(chartDataDifficultyInfo[i].charAt(0) == difficulties[difficultyChoice].charAt(0) && chartDataDifficultyInfo[i].charAt(1) == difficulties[difficultyChoice].charAt(1))) {
-                oldChartsData += chartData[i];
-            }
-            System.out.println("Previous chart: " + chartDataDifficultyInfo[i]);
-        }
-        return oldChartsData;
-    }
-
-    static String findExistingChartsAtFileOpen() {
-        String exChartsData = "";
-        if (chartData != null) {
-            for (int i = 0; i < chartData.length; i++) {
-                exChartsData += chartData[i];
-            }
-        }
-        return exChartsData;
-    }
-
-    static void updateChartData() {
-
-        Scanner sc;
-        String foundData = "";
-        int foundCharts = 0;
-        int foundChartIndex = 0;
-
-
-        sc = new Scanner(combinedChartData);
-            while (sc.hasNextLine()) {
-                String line = sc.nextLine();
-                if (line.startsWith("/")) {
-                    while (!line.startsWith(";")) {
-                        line = sc.nextLine();
-                    }
-                    foundCharts++;
-                }
-            }
-
-            sc.close();
-
-        chartData = new String[foundCharts];
-        chartDataDifficultyInfo = new String[foundCharts];
-
-        sc = new Scanner(combinedChartData);
-            while (sc.hasNextLine()) {
-                String line = sc.nextLine();
-                if (line.startsWith("/")) {
-                    while (!line.startsWith(";") && line != null && line != "") {
-                        foundData += line + "\n";
-                        line = sc.nextLine();
-                    }
-                    chartData[foundChartIndex] = foundData + ";\n";
-                    foundChartIndex++;
-                    foundData = "";
-                }
-            }
-
-            sc.close();
-
-        sc = new Scanner(combinedChartData);
-            foundChartIndex = 0;
-            while (sc.hasNextLine()) {
-                String line = sc.nextLine();
-                if (line.startsWith("/")) {
-                    line = sc.nextLine();
-                    line = sc.nextLine();
-                    line = sc.nextLine();
-                    line = sc.nextLine();
-                    chartDataDifficultyInfo[foundChartIndex] = line.substring(5, line.length()-1);
-                    System.out.println(chartDataDifficultyInfo[foundChartIndex]);
-                    while (!line.startsWith(";")) {
-                        line = sc.nextLine();
-                    }
-                    foundChartIndex++;
-                }
-            }
-
-            sc.close();
-    }
-
-    static void createSteps() {
-        try {
-
-            creator = creatorTxtField.getText();
-            boolean enableBeats = bStepsEnabled.isSelected();
-            
-            String outputText = "";
-            String oldChartsData = "";
-
-            outputText += "//--------------- dance-single - " + creator + " ----------------\n";
-            outputText += "#NOTES:\n     dance-single:\n     " + creator + ":\n     " + difficulties[difficultyChoice] + ":\n     "+ difficultyNumber +":\n     0,0,0,0,0:\n";
-
-            for (int i = 0; i < emptyMsrsBeginning; i++) {
-                outputText += ("0000" + "\n" + "0000" + "\n" + "0000" + "\n" + "0000" + "\n" + ",\n");
-            }
-            if (enableBeats) {
-                for (int i = 0; i < msrs; i++) {
-                    outputText += (generateMeasure(stepPercentage, jumpPercentage, holdPercentage, minePercentage, halfStepPercentage, halfJumpPercentage, halfHoldPercentage, halfMinePercentage, quarterStepPercentage, quarterJumpPercentage, quarterHoldPercentage, quarterMinePercentage) + ",\n");
-                }
-            }
-            for (int i = 0; i < emptyMsrsEnd; i++) {
-                outputText += ("0000" + "\n" + "0000" + "\n" + "0000" + "\n" + "0000" + "\n" + ",\n");
-            }
-
-            System.out.println(outputText.charAt(outputText.length()-2));
-            if (outputText.charAt(outputText.length()-2) == ',') {
-                outputText = outputText.substring(0, outputText.length()-2);
-            }
-            outputText += ";";
-            updateChartData();
-            oldChartsData = findOldCharts();
-            combinedChartData = oldChartsData + outputText;
-            infoBox("Steps created:\n" + difficulties[difficultyChoice] + ": " + difficultyNumber + "\nCreator: " + creator, " ");
-        }
-        catch (NullPointerException e) {
-            errorBox("Please select a file first.", "File not found!");
-        }
-        catch (NumberFormatException e) {
-            errorBox("Percentage must be between 0 and 100.", "Number format error");
-        }
-    }
-
-    static String generateMeasure(int bStepP, int bJumpP, int bTripleP, int bMineP, int hbStepP, int hbJumpP, int hbTripleP, int hbMineP, int qbStepP, int qbJumpP, int qbTripleP, int qbMineP) {
-        Random r = new Random();
-        int randomValue = r.nextInt(100);
-        String newBeat = "";
-        boolean isBeat = false, isHBeat = false, isQBeat = false;
-        String[] beatsInMeasure = new String[16];
-
-        beatsInMeasure[0] = generateBeat(bStepP, bJumpP, bTripleP, bMineP);
-        if (beatsInMeasure[0] != "0000") {
-            isBeat = true;
-        }
-        beatsInMeasure[1] = generateBeat(qbStepP, qbJumpP, qbTripleP, qbMineP);
-        if (beatsInMeasure[1] != "0000") {
-            isQBeat = true;
-        }
-        beatsInMeasure[2] = generateBeat(hbStepP, hbJumpP, hbTripleP, hbMineP);
-        if (beatsInMeasure[2] != "0000") {
-            isHBeat = true;
-        }
-        beatsInMeasure[3] = generateBeat(qbStepP, qbJumpP, qbTripleP, qbMineP);
-        if (beatsInMeasure[3] != "0000") {
-            isQBeat = true;
-        }
-        beatsInMeasure[4] = generateBeat(bStepP, bJumpP, bTripleP, bMineP);
-        if (beatsInMeasure[4] != "0000") {
-            isBeat = true;
-        }
-        beatsInMeasure[5] = generateBeat(qbStepP, qbJumpP, qbTripleP, qbMineP);
-        if (beatsInMeasure[5] != "0000") {
-            isQBeat = true;
-        }
-        beatsInMeasure[6] = generateBeat(hbStepP, hbJumpP, hbTripleP, hbMineP);
-        if (beatsInMeasure[6] != "0000") {
-            isHBeat = true;
-        }
-        beatsInMeasure[7] = generateBeat(qbStepP, qbJumpP, qbTripleP, qbMineP);
-        if (beatsInMeasure[7] != "0000") {
-            isQBeat = true;
-        }
-        beatsInMeasure[8] = generateBeat(bStepP, bJumpP, bTripleP, bMineP);
-        if (beatsInMeasure[8] != "0000") {
-            isBeat = true;
-        }
-        beatsInMeasure[9] = generateBeat(qbStepP, qbJumpP, qbTripleP, qbMineP);
-        if (beatsInMeasure[9] != "0000") {
-            isQBeat = true;
-        }
-        beatsInMeasure[10] = generateBeat(hbStepP, hbJumpP, hbTripleP, hbMineP);
-        if (beatsInMeasure[10] != "0000") {
-            isHBeat = true;
-        }
-        beatsInMeasure[11] = generateBeat(qbStepP, qbJumpP, qbTripleP, qbMineP);
-        if (beatsInMeasure[11] != "0000") {
-            isQBeat = true;
-        }
-        beatsInMeasure[12] = generateBeat(bStepP, bJumpP, bTripleP, bMineP);
-        if (beatsInMeasure[12] != "0000") {
-            isBeat = true;
-        }
-        beatsInMeasure[13] = generateBeat(qbStepP, qbJumpP, qbTripleP, qbMineP);
-        if (beatsInMeasure[13] != "0000") {
-            isQBeat = true;
-        }
-        beatsInMeasure[14] = generateBeat(hbStepP, hbJumpP, hbTripleP, hbMineP);
-        if (beatsInMeasure[14] != "0000") {
-            isHBeat = true;
-        }
-        beatsInMeasure[15] = generateBeat(qbStepP, qbJumpP, qbTripleP, qbMineP);
-        if (beatsInMeasure[15] != "0000") {
-            isQBeat = true;
-        }
-
-
-        if (isQBeat) {
-            for (int i = 0; i <= 15; i++) {
-                newBeat += beatsInMeasure[i] + "\n";
-            }
-        }
-        else if (isHBeat) {
-            for (int i = 0; i < 15; i++) {
-                if (i % 2 == 0) {
-                    newBeat += beatsInMeasure[i] + "\n";
-                }
-            }
-        }
-        else {
-            for (int i = 0; i < 15; i++) {
-                if (i % 4 == 0) {
-                    newBeat += beatsInMeasure[i] + "\n";
-                }
-            }
-        }
-
-        return newBeat;
-    }
-
-    static String generateBeat(int beatPcge, int jumpPcge, int triplePcge, int minePcge) {
-        Random r = new Random();
-        int tRng = r.nextInt(100);
-        int tBeatPcge = beatPcge;
-        int tJumpPcge = beatPcge + jumpPcge;
-        int tTriplePcge = tJumpPcge + triplePcge;
-        int tMinePcge = tTriplePcge + minePcge;
-
-        if (tRng < tBeatPcge) {
-            return generateRandomStep();
-        }
-        else if (tRng < tJumpPcge) {
-            return generateRandomJump();
-        }
-        else if (tRng < tTriplePcge) {
-            return generateRandomTriple();
-        }
-        else if (tRng < tMinePcge) {
-            return generateRandomMine();
-        }
-        else {
-            return "0000";
-        }
-    }
-
-    static String generateRandomStep() {
-        Random r = new Random();
-        int stepType;
-        String step;
-        stepType = r.nextInt(4);
-
-        switch (stepType) {
-            case 0:
-                step = "1000"; //Left
-                break;
-            case 1:
-                step = "0100"; //Down
-                break;
-            case 2:
-                step = "0010"; //Up
-                break;
-            case 3:
-                step = "0001"; //Right
-                break;
-            default:
-                step = "0000"; //Nothing
-                break;
-        }
-        return step;
-    }
-
-    static String generateRandomJump() {
-        Random r = new Random();
-        int stepType;
-        String step;
-        stepType = r.nextInt(6);
-
-        switch (stepType) {
-            case 0:
-                step = "1100"; //Left + Down
-                break;
-            case 1:
-                step = "1010"; //Left + Up
-                break;
-            case 2:
-                step = "1001"; //Left + Right
-                break;
-            case 3:
-                step = "0110"; //Down + Up
-                break;
-            case 4:
-                step = "0101"; //Down + Right
-                break;
-            case 5:
-                step = "0011"; //Up + Right
-                break;
-            default:
-                step = "0000"; //Nothing
-                break;
-        }
-        return step;
-    }
-
-    static String generateRandomTriple() {
-        Random r = new Random();
-        int stepType;
-        String step;
-        stepType = r.nextInt(4);
-
-        switch (stepType) {
-            case 0:
-                step = "1110"; //Left + Down + Up
-                break;
-            case 1:
-                step = "1101"; //Left + Down + Right
-                break;
-            case 2:
-                step = "1011"; //Left + Up + Right
-                break;
-            case 3:
-                step = "0111"; //Down + Up + Right
-                break;
-            default:
-                step = "0000"; //Nothing
-                break;
-        }
-        return step;
-    }
-
-    static String generateRandomMine() {
-        Random r = new Random();
-        int stepType;
-        String step;
-        stepType = r.nextInt(4);
-
-        switch (stepType) {
-            case 0:
-                step = "M000"; //Left
-                break;
-            case 1:
-                step = "0M00"; //Down
-                break;
-            case 2:
-                step = "00M0"; //Up
-                break;
-            case 3:
-                step = "000M"; //Right
-                break;
-            default:
-                step = "0000"; //Nothing
-                break;
-        }
-        return step;
-    }
-
-    static void writeIntoFile(String text) {
-        try {
-            FileWriter writer = new FileWriter(stepFile);
-            writer.write(text);
-            writer.close();
-            infoBox("File Saved.", "");
-        }
-        catch (IOException e) {
-
-        }
-    }
-
-    static void createNewFile() {
-        try {
-            FileWriter writer = new FileWriter(stepFile);
-            
-            writer.write(MainWindow.mainSongInfo);
-            writer.close();
-            infoBox("New step file created.\nRemember to set at least following values:\n\nTitle\nMusic\nBPM\nOffset\n\nOtherwise the stepfile might have issues.", "New step file created");
-        }
-        catch (IOException e) {
-            errorBox("Please select a file first.", "File not found!");
-        }
-        catch (NullPointerException e) {
-            errorBox("Please select a file first.", "File not found!");
-        }
-    }
-
-    private enum Difficulty{
-		BEGINNER, EASY, MEDIUM, HARD, CHALLENGE
-	}
-
-    static void setMeasureTxtField(String value) {
-        msrTxtField.setText("");
-    }
-
-    public static void main(String[] args) throws Exception {
-        startMainWindow();
-        //MainWindow window1 = new MainWindow();
-    }
-}
diff --git a/src/PercentageOverException.java b/src/PercentageOverException.java
deleted file mode 100644
index fcd566163ccdee49724d01d545f3ae6e31ba4cc9..0000000000000000000000000000000000000000
--- a/src/PercentageOverException.java
+++ /dev/null
@@ -1,3 +0,0 @@
-public class PercentageOverException extends Exception{
-    
-}
diff --git a/src/Uusi tekstiasiakirja.bat b/src/Uusi tekstiasiakirja.bat
deleted file mode 100644
index 6efc1cd5c6ccc49889b1ed6b86ad52fdd13daf0d..0000000000000000000000000000000000000000
--- a/src/Uusi tekstiasiakirja.bat	
+++ /dev/null
@@ -1,2 +0,0 @@
-javac Main.java
-pause
\ No newline at end of file