Author: Alan Shao and Kevin Zhou