I reduce some time cost, but TL all the same