add walk() ; improve exists()