Reimplementing diff command