about enumeration design pattern