Changed system_parameters to allowed_undefined_parameters
Created a _default_on_error method that can be called as a fallback when overriding default error behaviour