added event dispatching refactoring node collection