subtler syntax for ! and ?