refactoring: use Controls.onSelect (part I)