The way things like the repository object get passed around seems to make this a good candidate for something like Needle to manage those dependencies.