implement repository methods