typo: cancelInterval -> clearInterval