"Bringing all the functions in house, however, may not solve the issue. For, in most cases, the breaches were caused by human error or, in many cases, a momentary lapse in judgement."
There is no such thing as "human error". There are only system design flaws that make this kind of mistake possible.
If the only thing keeping millions of people's personal information secure is whether or not some low level staffer had enough coffee this morning, your system design is bad and you should feel bad.