blog implementation(2)