add respository factory class