changing to a message passing api, does not compile