refactored dom event handling of collection (add/remove)