choice add functionality