(ArrayDeque is better in every way)