instead allow caller to specify temp path