adding the repository layer