improved firmware update