Try to implement a generic repository