use a hash for message generation