https://www.final-rev.com/2023/05/bitbybit1prep2shfinal.html