Dependency injection for fun and profit.