implemented boolean not