Library of Haojun
Work in progress...