Correscted errors when displaying empty message

null and empty message weren't handled correctly
Consolidated choose()

choose() timeout not needed, since it can be implemented via a closure
-> removed timeout parameter and related code, streamlined host
interface