repository + service