https://notecse.blogspot.com/2017/11/cse-218-electronic-device-and-circuits.html