add choose function