Author: You-Liang (Edward) Gu