fixed message passing