allow empty set construction