recursive system