use placholder polymorphic type in enum