add recursive lookup of os