revise to hold soft references so . and .. can be held in cache