maybe it needs two setTimeouts...