Add timeout support