updated fw update logic