diff --git a/.idea/misc.xml b/.idea/misc.xml
index ec7da81..8f9690c 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -7,4 +7,9 @@
   
     
   
+  
+    
+  
 
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index bdb4873..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-  
-    
-    
-  
-
\ No newline at end of file
diff --git a/src/main/java/tech/nevets/jaml/JAML.java b/src/main/java/tech/nevets/jaml/JAML.java
index b134b41..62c27d7 100644
--- a/src/main/java/tech/nevets/jaml/JAML.java
+++ b/src/main/java/tech/nevets/jaml/JAML.java
@@ -7,7 +7,7 @@ import java.nio.file.Path;
 public class JAML {
     public static Path path;
     public static GuiHandler guiHandler;
-    public static final String VERSION = "0.8.0";
+    public static final String VERSION = "0.8.2";
 
     public static void main(String[] args) {
 
diff --git a/src/main/java/tech/nevets/jaml/Launcher.java b/src/main/java/tech/nevets/jaml/Launcher.java
index 357fd94..18b0ec3 100644
--- a/src/main/java/tech/nevets/jaml/Launcher.java
+++ b/src/main/java/tech/nevets/jaml/Launcher.java
@@ -9,10 +9,49 @@ import java.io.InputStreamReader;
 import java.util.ArrayList;
 
 public class Launcher {
+    private int jdkVersion;
+    private int memoryAmount;
+    private String garbageCollection;
+    private boolean printConsole;
     //TODO add progressbar for launch progress
     //TODO add console output option
 
-    public Launcher(int jdkVersion, int memoryAmount, String garbageCollection, boolean printConsole) {
+    public Launcher() {
+    }
+
+    public void setJdkVersion(int jdkVersion) {
+        this.jdkVersion = jdkVersion;
+    }
+
+    public int getJdkVersion() {
+        return jdkVersion;
+    }
+
+    public void setMemoryAmount(int memoryAmount) {
+        this.memoryAmount = memoryAmount;
+    }
+
+    public int getMemoryAmount() {
+        return memoryAmount;
+    }
+
+    public void setGarbageCollection(String garbageCollection) {
+        this.garbageCollection = garbageCollection;
+    }
+
+    public String getGarbageCollection() {
+        return garbageCollection;
+    }
+
+    public void setPrintConsole(boolean printConsole) {
+        this.printConsole = printConsole;
+    }
+
+    public boolean getPrintConsole() {
+        return printConsole;
+    }
+
+    public void launch() {
         try {
             ArrayList commandArray = parseCommand(jdkVersion, memoryAmount, garbageCollection);
 
diff --git a/src/main/java/tech/nevets/jaml/gui/NewProfileGui.java b/src/main/java/tech/nevets/jaml/gui/NewProfileGui.java
index 35ce17d..c4b2290 100644
--- a/src/main/java/tech/nevets/jaml/gui/NewProfileGui.java
+++ b/src/main/java/tech/nevets/jaml/gui/NewProfileGui.java
@@ -33,23 +33,38 @@ public class NewProfileGui extends JFrame {
         contentPane = new JPanel();
         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
         setContentPane(contentPane);
-        contentPane.setLayout(null);
+        SpringLayout sl_contentPane = new SpringLayout();
+        contentPane.setLayout(sl_contentPane);
 
         JLabel profileNameLabel = new JLabel("Profile Name:");
-        profileNameLabel.setBounds(10, 14, 84, 31);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, profileNameLabel, 14, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, profileNameLabel, 10, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, profileNameLabel, 45, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, profileNameLabel, 94, SpringLayout.WEST, contentPane);
         contentPane.add(profileNameLabel);
         JTextField profileNameField = new JTextField(20);
-        profileNameField.setBounds(94, 18, 231, 23);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, profileNameField, 18, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, profileNameField, 94, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, profileNameField, 41, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, profileNameField, 325, SpringLayout.WEST, contentPane);
         contentPane.add(profileNameField);
 
         JLabel gamePathLabel = new JLabel("Game Path:");
-        gamePathLabel.setBounds(10, 56, 84, 31);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, gamePathLabel, 56, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, gamePathLabel, 10, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, gamePathLabel, 87, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, gamePathLabel, 94, SpringLayout.WEST, contentPane);
         contentPane.add(gamePathLabel);
 
         JButton gamePathButton = new JButton("...");
-        gamePathButton.setBounds(302, 60, 23, 23);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, gamePathButton, 60, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, gamePathButton, 302, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, gamePathButton, 325, SpringLayout.WEST, contentPane);
         JTextField gamePathField = new JTextField(20);
-        gamePathField.setBounds(94, 60, 209, 23);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, gamePathField, 60, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, gamePathField, 94, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, gamePathField, 83, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, gamePathField, 303, SpringLayout.WEST, contentPane);
         gamePathButton.addActionListener(ae -> {
             JFileChooser fileChooser = new JFileChooser(System.getenv("APPDATA") + "\\.minecraft\\");
             fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
@@ -68,29 +83,49 @@ public class NewProfileGui extends JFrame {
         }
 
         JLabel versionLabel = new JLabel("Version:");
-        versionLabel.setBounds(10, 98, 84, 31);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, versionLabel, 98, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, versionLabel, 10, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, versionLabel, 129, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, versionLabel, 94, SpringLayout.WEST, contentPane);
         contentPane.add(versionLabel);
-        JComboBox versionField = new JComboBox<>(versions.toArray(new String[versions.size()]));
-        versionField.setBounds(94, 102, 231, 23);
+        JComboBox versionField = new JComboBox(versions.toArray(new String[versions.size()]));
+        sl_contentPane.putConstraint(SpringLayout.NORTH, versionField, 102, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, versionField, 94, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, versionField, 125, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, versionField, 325, SpringLayout.WEST, contentPane);
         contentPane.add(versionField);
 
         JLabel loaderLabel = new JLabel("Loader:");
-        loaderLabel.setBounds(10, 140, 84, 31);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, loaderLabel, 140, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, loaderLabel, 10, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, loaderLabel, 171, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, loaderLabel, 94, SpringLayout.WEST, contentPane);
         contentPane.add(loaderLabel);
 
-        JComboBox loaderDropdown = new JComboBox<>(LoaderUtils.getLoaders());
-        loaderDropdown.setBounds(94, 144, 231, 23);
+        JComboBox loaderDropdown = new JComboBox(LoaderUtils.getLoaders());
+        sl_contentPane.putConstraint(SpringLayout.NORTH, loaderDropdown, 144, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, loaderDropdown, 94, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, loaderDropdown, 167, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, loaderDropdown, 325, SpringLayout.WEST, contentPane);
         contentPane.add(loaderDropdown);
 
         JLabel offlineModeLabel = new JLabel("Offline Mode:");
-        offlineModeLabel.setBounds(10, 182, 84, 31);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, offlineModeLabel, 182, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, offlineModeLabel, 10, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, offlineModeLabel, 213, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, offlineModeLabel, 94, SpringLayout.WEST, contentPane);
         contentPane.add(offlineModeLabel);
         JCheckBox offlineModeBox = new JCheckBox("");
-        offlineModeBox.setBounds(94, 185, 21, 23);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, offlineModeBox, 185, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, offlineModeBox, 94, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, offlineModeBox, 208, SpringLayout.NORTH, contentPane);
         contentPane.add(offlineModeBox);
 
         JButton button = new JButton("Create Profile");
-        button.setBounds(24, 243, 217, 37);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, button, 243, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, button, 24, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, button, 280, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, button, 241, SpringLayout.WEST, contentPane);
         button.addActionListener(al -> {
             Profile profile = new Profile();
             profile.setProfileName(profileNameField.getText());
@@ -111,7 +146,10 @@ public class NewProfileGui extends JFrame {
         contentPane.add(button);
         
         JButton cancelButton = new JButton("Cancel");
-        cancelButton.setBounds(242, 243, 83, 37);
+        sl_contentPane.putConstraint(SpringLayout.NORTH, cancelButton, 243, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.WEST, cancelButton, 242, SpringLayout.WEST, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.SOUTH, cancelButton, 280, SpringLayout.NORTH, contentPane);
+        sl_contentPane.putConstraint(SpringLayout.EAST, cancelButton, 325, SpringLayout.WEST, contentPane);
         cancelButton.addActionListener(al -> {
             this.dispose();
         });
diff --git a/src/main/java/tech/nevets/jaml/gui/TestGui.java b/src/main/java/tech/nevets/jaml/gui/TestGui.java
new file mode 100644
index 0000000..0581f18
--- /dev/null
+++ b/src/main/java/tech/nevets/jaml/gui/TestGui.java
@@ -0,0 +1,36 @@
+package tech.nevets.jaml.gui;
+
+import javax.swing.*;
+import javax.swing.border.EmptyBorder;
+
+public class TestGui extends JFrame {
+    public int buttons;
+
+    JPanel contentPane;
+
+    public TestGui() {
+        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        setSize(1920, 1080);
+        contentPane = new JPanel();
+        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
+        setContentPane(contentPane);
+        contentPane.setLayout(null);
+        setLocationRelativeTo(null);
+
+        int num = 5;
+
+        for (int i = 0; i < 5; i++) {
+            JButton button = new JButton();
+            button.setBounds(10, num, 10, 5);
+            contentPane.add(button);
+            num += 10;
+        }
+        
+    }
+
+    public static void main(String[] args) {
+        TestGui gui = new TestGui();
+        gui.setLocationRelativeTo(null);
+        gui.setVisible(true);
+    }
+}
diff --git a/src/main/java/tech/nevets/jaml/gui/panels/HomePanel.java b/src/main/java/tech/nevets/jaml/gui/panels/HomePanel.java
index a60591c..96ffd3a 100644
--- a/src/main/java/tech/nevets/jaml/gui/panels/HomePanel.java
+++ b/src/main/java/tech/nevets/jaml/gui/panels/HomePanel.java
@@ -1,6 +1,5 @@
 package tech.nevets.jaml.gui.panels;
 
-
 import tech.nevets.jaml.JAML;
 import tech.nevets.jaml.Launcher;
 import tech.nevets.jaml.util.ImageUtils;
@@ -20,11 +19,16 @@ public class HomePanel extends JPanel {
         JButton launchButton = new JButton("Launch");
         launchButton.setBounds(512, 619, 196, 51);
         launchButton.addActionListener(al -> {
-            new Launcher(17, 6, "zgc", true);
+            Launcher launch = new Launcher();
+            launch.setJdkVersion(17);
+            launch.setMemoryAmount(6144);
+            launch.setGarbageCollection("zgc");
+            launch.setPrintConsole(true);
+            launch.launch();
         });
         add(launchButton);
 
-        JComboBox activeProfileDropdown = new JComboBox(ProfileUtils.profileList);
+        JComboBox activeProfileDropdown = new JComboBox<>(ProfileUtils.profileList);
         activeProfileDropdown.setBounds(858, 648, 196, 22);
         add(activeProfileDropdown);
 
diff --git a/src/main/java/tech/nevets/jaml/gui/panels/ProfilePanel.java b/src/main/java/tech/nevets/jaml/gui/panels/ProfilePanel.java
index e0234a1..6ba7539 100644
--- a/src/main/java/tech/nevets/jaml/gui/panels/ProfilePanel.java
+++ b/src/main/java/tech/nevets/jaml/gui/panels/ProfilePanel.java
@@ -1,9 +1,23 @@
 package tech.nevets.jaml.gui.panels;
 
 import javax.swing.*;
+import java.awt.Component;
 
 public class ProfilePanel extends JPanel {
     public ProfilePanel() {
+    	SpringLayout springLayout = new SpringLayout();
+    	setLayout(springLayout);
+    	
+    	JComboBox profileDropDown = new JComboBox();
+    	add(profileDropDown);
+    	
+    	Component dropDownGlue = Box.createGlue();
+    	springLayout.putConstraint(SpringLayout.NORTH, profileDropDown, 0, SpringLayout.NORTH, dropDownGlue);
+    	springLayout.putConstraint(SpringLayout.WEST, profileDropDown, -80, SpringLayout.WEST, dropDownGlue);
+    	springLayout.putConstraint(SpringLayout.EAST, profileDropDown, 30, SpringLayout.WEST, dropDownGlue);
+    	springLayout.putConstraint(SpringLayout.NORTH, dropDownGlue, 16, SpringLayout.NORTH, this);
+    	springLayout.putConstraint(SpringLayout.WEST, dropDownGlue, 242, SpringLayout.WEST, this);
+    	add(dropDownGlue);
 
     }
 }