adding message passing