dealing with new key codes
dealing with shift