pulling from Sheng-Liang's repo for HW3