change event may experience issues
avoiding maximum stack error