3 pathes

* wrap map.getZoom in apply so we can catch exception
* watch message attribute
* add full-example