Tidy up API to not require manual Connect() call