recursive systems