add m_beforeRemoveFunc