update recursive methods