add distinct
finish invite user interface