message/error passing implemented