for some reason, df feels more natural for diff-last