Further refactor to use Enums