add choice function