use ErrorList for errors, improved tests