implement Cases property instead of static ctor