recursive version of scv