broken and half fragment implementation