revise setTimout