More configurable, better error reporting