added methods to abstract generic Repository (Repository.cs) and child repositories