add copy_contractor and modify operator[]