translating by FingerLiu