public TempHiLo(TemperatureSensor theSensor, AlarmClock theAlarmClock) {
    itsAlarmClock = theAlarmClock;
    itsSensor = theSensor;

    // construct the data object
    Date d = new Date();
    double sensorValue = itsSensor.read();
    itsData = wmsdata.Scope.itsDataToolkit.getTempHiLoData(d, sensorValue);

    // register for the 24 hour data
    AlarmListener al =
        new AlarmListener() {
          public void wakeUp() {
            newDay();
          }
        };
    itsAlarmClock.wakeEveryDay(al);

    // register for changes in the sensor
    Observer o =
        new Observer() {
          public void update(Observable ob, Object anObject) {
            Double val = (Double) anObject;
            itsData.currentReading(val.doubleValue(), System.currentTimeMillis());
          }
        };
    itsSensor.addObserver(o);
  }