fixed definition to include all conditionals