implement use_session