Moved message creation to service layer