whole system