Part 2 credits to sandiciton on YouTube