add distinct method