Many thanks to Alan Rubin for their contribution!