refactoring enumerator