improve BooleanNode