How to Build Large Scale Cyber-Physical Systems