working: not optimal, is decentralized,