add timeout and scroll timeout support