from discussion with @aeisenbarth
from discussion with @aeisenbarth