consider replacing completed with err that contains the error message, or nil? (not exists) if completed succesfully