The problem of the 737 Max was caused by the engines.
Er, not the engines exactly.
To make them more efficient they have a larger front intake fan. That is where most of the extra thrust comes from, for no extra fuel burn rate.
The larger diameter of engine introduces two problems.
1. The engines have to be mounted closer to the wings to maintain ground clearance.
2. The engines are of larger diameter.
These two factors, taken together, add extra drag, that at low air speed and high angles of attack, tend to make the nose of the aircraft point down.
Software was introduced to restore the handling characteristics of the aircraft to resemble those of the older aircraft, for which the pilots had been previously trained.
Nose down flight problems presented themselves, during and after takeoff, and although these nose down problems could be easily overcomed by the pilot, only about half of them had been trained in how to deal safely with this problem. The software simply ignored the pilot corrective commands, which were only appropriate to the earlier 737 800's and 900's.
That is why Boeing has had to 'carry the can'.
New revised 'fly by wire' software may not completely solve the problem.
The real 'fix' is to increase the length of the landing gear struts, which implies a re design and re build of the wings to accommodate those struts.
The problem is so big that it could put Boeing out of business, unless the U.S taxpayer bails them out.
Another reason why the U.S. taxpayer may have to bail Boeing out, is that Boeing is the U.S. Government's largest defense hardware contractor.
That is why this problem has taken so long to fix, with no end in sight.