https://llego.dev/posts/using-default-parameter-values-flexibility-python/