Don't setState on every run of componentWillUpdate
Genericise the display of messages
Break MessageSender out into component