using the evil setInterval