Error messager refactoring + options based syntax for Contains(...)

Lots of changes here, mostly regarding the new error message format