double negate cached so it always logs true/false