User setTimeout instead of setInterval