Repository constructor