This is a template for generic repository