Use recursive trait by default and add parameter