Fix message API

* improve the GUI along the way
* update unit tests