Restructured and Buffer Added