unify errors
add timed loop for retries