error handling, message envelopes, function mapping