pass diff through
add timeout support