messages can be a raw string