modify part matcrs function