Use setTimeout instead of setInterval