add TemporaryCurrentDirectory class