I read the doc but that approach seemed like it required more coding than really needed. Dependency injection just seems like an overly complicated approach to solving problems that can be fixed with smarter templates. And any time a new object is added, developers would still need to remember to go take extra steps to "finish" that object. Otherwise, the object will still work but concurrency won't be in place.
Thanks to the link you provided, I've solved my problem and now it's solved once and for all. I don't have to worry about a developer forgetting to take the extra steps. Now it just works.
Thanks again, that "HasEntityField" is exactly what I was after. Where can I find more documentation on all the options available for us in a template? I did find in the documentation a list of all the "Current" object available.