almost working but message passing not working for some sad reason :(