extracting the FocusTraversalPolicy and some minor refactoring