Add Repository class and RepositoryContext class, for use DI principle