avoid using 'nub' function