implementing user selection