object pool & summary of factory pattern