''' Author: Wenchang Yang (yang.wenchang@uci.edu) '''