partialy done on message passing