support custom session store