separate connection management from connection use