no longer use notify()