added a way to identify the source of fired events
added pending events, getSubscribers(), and isSubscribed()