Many thanks to Eric Atkin for their contribution!