https://medium.com/@monocosmo77/understanding-cyber-physical-systems-part1-computer-science-a7c65ba5c457