public Object localise() {
		//create a stub class as needed. if classNotFound, download from server 
		Object stubObject = null;
		String stubName = remoteInterfaceName + "_stub";
		Class<?> stubClass = null;
		try {
			stubClass = Class.forName(stubName);
			
		} catch (ClassNotFoundException c) {
			System.out.println("Could not find class " + stubName);
			System.out.println("Downloading class file " + stubName + ".class...");
			//c.printStackTrace();
			downloadStub(stubName);
			System.out.println("Download succeeded");
			try {
				stubClass = Class.forName(stubName);
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				System.out.println("Download failed");
				e.printStackTrace();
			}
			
		}
		
		try {
			stubObject = stubClass.newInstance();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		((MyRemote)stubObject).setRemoteObjectReference(this);
		return stubObject;
	}