optimised internal message passing