to add inner getkeystate and inner getasynckeystate