implement issue #21 - TAB cycling in both directions
updated