Everyone always ends up fighting the framework. Work on a project long enough and it happens every time. It's understandable because the framework wasn't designed with your project in mind.
https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-a...