Last updated by guanggyoung for coursera rprog-005.