(feat) add PendingFactory in pendingController