added proper hierarchy and tests for enumerable sets