add PoolFactory