refactor using mempool