made the path cache for joining abstraction protected instead of private