add fragment implementation