implement top choice