clarified the purpose of SynchronizedRunListener