Changes made by Gary Chen (garychen0618@hotmail.com).