added message passing to block