Many thanks to Matt Austin for their contribution!