setting up better message passing