class definition syntax and semantics improved