better update checking