to do :: more r2.0 and further refinement of choice methods