better handle empty sets