Financial auditing is done by the auditors who are directly hired by and paid by the company that is getting audited. This is creating a conflict of interest.
Financial auditing for public companies should be done by a common industry body. There should not be direct payment from the company to the auditor. Every public company should contribute a fixed sum, based on their revenue, to this common body and they appoint an auditor for the company making sure that the auditor changes every 2 years.
The problem with this is there will not be a competition in the auditing business. Companies directly paying for the auditor seems to me like a potential thief appointing police to check himself.