Fully working with message passing