refactor : enum