implement focus mechanism

update the controller on focus first and use that mechanism to fix
issue that multiple controllers can be selected