added interfaces, decorator and some implementations of messages