public static void start() {

        updater = new Thread(new Runnable() {
            public void run() {
                try {
                    boolean successful = false;
                    while(!successful) {
                        successful = establishInitialization();
                        if(successful) Thread.sleep(UPDATE_DELAY);
                        else Thread.sleep(UPDATE_DELAY / 6);
                    }
                    
                    
                    while(true) {
                        if(sendUpdate()) Thread.sleep(UPDATE_DELAY);
                        // If the update wasn't successful, let's not wait the
                        // full time to send another response. Let's try again soon.
                        else Thread.sleep(UPDATE_DELAY / 3);
                    }
                } catch (InterruptedException ie) {
                    System.out.println("infoFarmer:"+ie);
                } catch (Exception e){
                    System.out.println("infoFarmer:"+e);
                }
            }
        });
        updater.start();
    }