partial implementation - stopped at the point where nodes need to be synchronised