+ fully distributed version
+ not yet correct