no-recursive support and improve tests