implemented blocking message passing, tests passed.