error catching and tests