- add WeakEventHandler
- add Timer