lang load add recursive function