implemented message system