added path walk functions