Refactored repository pattern to use a typed interface, rather than typed methods.