abstract kbd obj as prep for swap-kbd