clean up & document recursive support