the lib written by xyp