refactoring, add enum