update test and add recursive form