Internal refactor, start using Message with Payload