refactoring on enum list support with has function