adding diff functionality