first attempts to create more generic way of composing messages
new message composing - refactor