(feat) add pendingFactory