This looks ok.
We need to write elaborate message catching.