new (slightly different) approach to diff creation