support nested messages