using the whole system