Source: https://plg.uwaterloo.ca/~olhotak/pubs/ppdp18.pdf