enumeration with constructor, methods