product respository