It would be great to be able to allow custom repositories, derived from the base Repository class with extra methods for specific queries? I was thinking of change the the repositories dictionary in the UnitOfWork to make it protected so you can create your own UnitOfWork inheriting from the base and poke your own custom repositories into the dictionary in the constructor? What do you think?