error check should stop on first fail