== breaks polymorphism, replacing with not