using proper diff