allow recursive default parameter