Implement choose and re-choose