change timing to counter with limit optional