public static void main(String [] args){
		
	    if (System.getSecurityManager() == null){
	    	System.setSecurityManager(new SecurityManager());
	    }
	    Space space = null;
	    
	    try{
	    	space = (Space) Naming.lookup("//"+args[0]+":"+args[1]+"/Space");
	    	
	    	double[][] cities = 
	    		{
	    			{ 1, 1 },
	    			{ 2, 1 },
	    			{ 3, 1 },
	    			{ 4, 1 },
	    			{ 1, 2 },	
	    			{ 2, 2 }, // 6
	    			{ 3, 2 },
	    			{ 4, 2 },
	    			{ 1, 3 }, // 9
	    			{ 2, 3 },
	    			{ 3, 3 },
	    			{ 4, 3 }, // 12
	    			{ 1, 4 },
//	    			{ 2, 4 },
//	    			{ 3, 4 }, // 15
//	    			{ 4, 4 },
//	    			{ 1, 5 },
//	    			{ 2, 5 }, // 18
//	    			{ 3, 5 },
//	    			{ 4, 5 },
//	    			{ 1, 6 }, // 21
//	    			{ 2, 6 },
//	    			{ 3, 6 }, 
//	    			{ 4, 6 }  // 24

	    	};
	    	
	    	long jobStartTime = System.nanoTime();
	    	
			TspJob tspJob = new TspJob(cities);
			tspJob.generateTasks(space);
			Tour shortestTour = tspJob.collectResults(space);
			
			long jobEndTime = System.nanoTime();
			
			System.out.println("The job took: " + ((jobEndTime - jobStartTime) / 1000000000.0) + " s");
			System.out.println(shortestTour.toString());
			
			
		    JLabel euclideanTspLabel = displayEuclideanTspTaskReturnValue( cities,  tourToArray(shortestTour.getPath()));
		    
		    // display JLabels: graphic images
		    JFrame frame = new JFrame( "Result Visualizations" );
		    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		    Container container = frame.getContentPane();
		    container.setLayout( new BorderLayout() );
		    container.add( new JScrollPane( euclideanTspLabel ), BorderLayout.EAST );
		    frame.pack();
		    frame.setVisible( true );
		    
	    }
	    catch (HeadlessException he) {
	    	System.err.println("Environment is headless. Dropping GUI.");
	    }
	    
	    catch (Exception e) {
            System.err.println("Client exception!");
            e.printStackTrace();
        }
	    
	}