recursive mode