Easier to read if you replace ^ by != :)