Make ReuseOracle thread-safe by using oracle factories