implemented choice parameter