Full verison code of the blog