Added new definition syntax and opaque definitions.