Rework connect() logic to include downstream sync, tests passing