use standard library for diff