uses delete instead of undef in noRepeat