make the conn cached, so that no need to init conn each time we want to do sth