Because this is the first time this is called, lazy initialization. Connection only has to be created once. Could prpbably make better with the consumerprovider you suggested. Same with next comment.