generic practice repository