I write C# in my day job, so I've gotten familiar with dependency injection there.
Let's try this as test-driven development. I've never done it before, so it should be fun!
Part of my reasoning for TDD is because I want to explore the API prior to making the implementation.