Would suggest using a Deque (specifically an ArrayDeque), so you can shutdown in reverse of the initialisation/update order.