implement both the domain and the repository through protocols, which allows for real dependency injection; fixed the t_things test to use stubs instead of mocks