Added Message interface, 2 Message types
refactoring