re-wrote filters to allow prohibited & required terms, without letting the client mix them with booleans