Not sure why CopyOnWriteArraySet is required here