implemented xop_add