prototype genuniD func