add support for ? operator