Added support for messages, multiple values and derivative approach to derive/absolute/counter types.