support enum in message
add support for enums and messages inside messages; tests