use enum base class