http://www.cnblogs.com/stephen-liu74/category/360139.html
http://www.cnblogs.com/lancidie/archive/2011/01/31/1948379.html
http://www.cnblogs.com/lancidie/archive/2011/02/04/1949175.html