Changes made by Jerry Ren (jerryjren@gmail.com).