removed cmp from generic class