program now does something marginally useful, if the input data is perfect