Introduced polimorphic nature of message.
Made MessageMetada generic.