added generic repository with read operation