recursive change dir