public static void main(String[] args) throws IOException, ParseException {
    	
    	numArgs = args.length;
    	
    	if(numArgs == 0)
    	{
    		GUI freezeUI = new GUI();
        	freezeUI.setVisible(true);
    	}
    	else
    	{
	    	
	    	//Expect multiple switches but one command
	    	command = "";
	    	for(int i = 0; i < numArgs; i++)
	    	{
	    		if(args[i].charAt(0) == '-')
				{
	    			switches.put(args[i].substring(1,args[i].length()), true);
	    		}
	    		else
	    		{
	    			command = args[i];
	    	    	if(!Arrays.asList(validCommands).contains(command))
	    	    	{
	    	    		throw new UnsupportedOperationException(command + " is not a valid command");
	    	    	}
	    		}
	    	}
	    	
	    	if(command.contentEquals(""))
	    	{
	    		System.out.println(
	    				"No command passed\r\n" +
	    				"Current commands are list, upload and download \r\n");
	    		System.exit(NO_COMMAND);
	    	}
	    	
	    	
		    	switch(command.toLowerCase())
		    	{
					case "upload":
						filePath = args[1];
						authorize();
						upload();
						break;
					case "download":
						authorize();
						String id = args[1];
						download(id);
						break;
		    		case "list":
		    			authorize();
		    			list();
		    			break;
		    		case "version":
		    			Utilities.printVersion();
		    			break;
		    	}
    	}

    }