fix `!` operator