ADD: errors are not just printed out, but returned to the original caller