use new factory style with Set<> container