fixed #1 correctly -- now it actually handles not calling establish_connection gracefully without a stack overflow