These messages need cleanup, but you get the idea.