Adapted from: https://rcos.io/projects/kburk1997/betterebinder/blog

https://docs.google.com/document/d/1VXOTAQHIHcEGsHaTKaj1pNZR-J-mQJq5S-7bhrZjdNA/edit?usp=sharing