Attempt to fix #82 by locking the internal collection of events and ensuring internal collections are not exposed.