reuse factory classes