Yeah, passing 4 things into the ctor seems too high for me. I'm not against singletons over a DI system. I'd just want to make sure that we still have good testability of the code.