Many thanks to Gerard Blais for their contribution!