Author: Yinghuang Xiong
Dates: active 1604