simple message passing implemented