Complex systems thinking explained