Pass the remaining buffer into final callback and add a watch timeout
feature