polishing the enumeration

getting the counts right and some corner cases.