enginize validation
improved error reporting